{
  "nbformat": 4,
  "nbformat_minor": 0,
  "metadata": {
    "accelerator": "GPU",
    "colab": {
      "name": "transfer_learning_mnist.ipynb",
      "provenance": [],
      "collapsed_sections": [],
      "include_colab_link": true
    },
    "kernelspec": {
      "display_name": "Python 3",
      "name": "python3"
    }
  },
  "cells": [
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "view-in-github",
        "colab_type": "text"
      },
      "source": [
        "<a href=\"https://colab.research.google.com/github/MathieuGrosso/projet-dima-/blob/main/transfer_learning_mnist.ipynb\" target=\"_parent\"><img src=\"https://colab.research.google.com/assets/colab-badge.svg\" alt=\"Open In Colab\"/></a>"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "QV4UZOkiBzZs",
        "outputId": "9605bd10-ec8e-4914-f0e1-363a636e5d5f"
      },
      "source": [
        "import sys\n",
        "print(sys.version)\n",
        "\n",
        "import matplotlib.pyplot as plt\n",
        "import numpy as np\n",
        "from sklearn.manifold import TSNE, Isomap, MDS\n",
        "\n",
        "import tensorflow as tf\n",
        "import tensorflow_datasets as tfds\n",
        "from tensorflow.keras.layers import Input, Dense, Lambda, Flatten, Reshape\n",
        "\n",
        "from tensorflow.keras.models import Model\n",
        "from tensorflow.keras import backend as K\n",
        "from tensorflow.keras import metrics\n",
        "from tensorflow.keras.datasets import mnist, fashion_mnist\n",
        "from tensorflow.keras.layers.experimental import preprocessing\n",
        "import cv2\n",
        "\n",
        "from tensorflow.keras.utils import to_categorical\n"
      ],
      "execution_count": 1,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "3.7.10 (default, Feb 20 2021, 21:17:23) \n",
            "[GCC 7.5.0]\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "W4j2md9MCBru"
      },
      "source": [
        "#Load the data:\n",
        "\n",
        "Choosing the dataset we will work on: we have two options. MNIST and Fashion-MNIST, set by the first variable of the following cell. \n",
        "\n",
        "We begin with MNIST. The variable \"anomaly_class\" indicates what images are considered as anomalous. we first test class 8 then class 9. \n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 129
        },
        "id": "T86Xr34SCBJh",
        "outputId": "c1505112-dd05-4d1d-e767-9586fabef6b6"
      },
      "source": [
        "#import data of mnist and fashion mnist: \n",
        "dataset = \"numbers\" # \"numbers\" or \"fashion\"\n",
        "anomaly_class = 8  # indicates which class is considered as anomalous\n",
        "\n",
        "if dataset == \"numbers\":\n",
        "    (x_train, y_train), (x_test, y_test) = mnist.load_data()\n",
        "    dico = {\n",
        "            0: '0',\n",
        "            1: '1',\n",
        "            2: '2',\n",
        "            3: '3',\n",
        "            4: '4',\n",
        "            5: '5',\n",
        "            6: '6',\n",
        "            7: '7',\n",
        "            8: '8',\n",
        "            9: '9',\n",
        "    }\n",
        "elif dataset ==\"fashion\":\n",
        "    (x_train, y_train), (x_test, y_test) = fashion_mnist.load_data()\n",
        "    dico = {\n",
        "            0: 'T-shirt/top',\n",
        "            1: 'Trouser/pants',\n",
        "            2: 'Pullover shirt',\n",
        "            3: 'Dress',\n",
        "            4: 'Coat',\n",
        "            5: 'Sandal',\n",
        "            6: 'Shirt',\n",
        "            7: 'Sneaker',\n",
        "            8: 'Bag',\n",
        "            9: 'Ankle boot',\n",
        "    }\n",
        "else:\n",
        "    print(\"Error: choices are 'fashion' or 'numbers'\")\n",
        "\n",
        "# We only keep normal images in the training set\n",
        "#J'ai enlevé ces deux lignes pour le moment pour essayer de déjà faire marcher l'algo en version supervised\n",
        "#x_train = x_train[y_train != anomaly_class]\n",
        "#y_train = y_train[y_train != anomaly_class]\n",
        "\n",
        "# Normalization and shape configuration\n",
        "x_train = x_train.astype('float32') / 255.\n",
        "x_test = x_test.astype('float32') / 255.\n",
        "x_train = np.expand_dims(x_train, axis=3)\n",
        "x_test = np.expand_dims(x_test, axis=3)\n",
        "\n",
        "# Display some NORMAL images\n",
        "n = 10  # how many images we will display\n",
        "plt.figure(figsize=(20, 4))\n",
        "for i in range(n):\n",
        "    # display original\n",
        "    ax = plt.subplot(1, n, i + 1)\n",
        "    plt.imshow(x_train[i].reshape(28,28))\n",
        "    plt.gray()\n",
        "    ax.get_xaxis().set_visible(False)\n",
        "    ax.get_yaxis().set_visible(False)\n",
        "\n",
        "plt.show()"
      ],
      "execution_count": 2,
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1440x288 with 10 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "hLCV8oy-uvNc",
        "outputId": "b7ebdc1c-80fc-46d2-970c-b1e4e9db923d"
      },
      "source": [
        "print(x_train.shape, 'x train samples')\n",
        "print(x_test.shape, 'x test samples')\n",
        "print(y_train.shape, 'y train samples')\n",
        "print(y_test.shape, 'y test samples')\n"
      ],
      "execution_count": 3,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(60000, 28, 28, 1) x train samples\n",
            "(10000, 28, 28, 1) x test samples\n",
            "(60000,) y train samples\n",
            "(10000,) y test samples\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "U0oeCK9_oI-K",
        "outputId": "a8f6f163-e89e-40f7-c772-bc3ec29f2625"
      },
      "source": [
        "#one-hot encoding of classes\n",
        "\n",
        "#define number of classes\n",
        "num_classes = 10\n",
        "\n",
        "y_train = to_categorical(y_train, num_classes)\n",
        "y_test = to_categorical(y_test, num_classes)\n",
        "\n",
        "\n",
        "print(x_train.shape, 'x train samples')\n",
        "print(x_test.shape, 'x test samples')\n",
        "print(y_train.shape, 'y train samples')\n",
        "print(y_test.shape, 'y test samples')\n"
      ],
      "execution_count": 4,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(60000, 28, 28, 1) x train samples\n",
            "(10000, 28, 28, 1) x test samples\n",
            "(60000, 10) y train samples\n",
            "(10000, 10) y test samples\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "IIXme5q32M_V",
        "outputId": "e585a601-caca-4f8d-abe0-ae0ca51c3e14"
      },
      "source": [
        "#adding a validation dataset: \n",
        "#used crossvalidation\n",
        "...\n",
        "\n",
        "\n",
        "# 2eme methode celle fait pour l'instant: \n",
        "val_nb = 5000 # number of validation samples\n",
        "nb_samples = x_train.shape[0] #nb  samples en tout\n",
        "\n",
        "if val_nb > nb_samples:\n",
        "    raise ValueError(\"You need some samples to train your network!\")\n",
        "x_val = x_train[:val_nb, ]\n",
        "x_train = x_train[val_nb:, ]\n",
        "y_val = y_train[:val_nb]\n",
        "y_train = y_train[val_nb:]\n",
        "\n",
        "y_val = to_categorical(y_val, num_classes)\n",
        "\n",
        "print(x_train.shape, 'x train samples')\n",
        "print(y_train.shape, 'y train samples')\n",
        "print(x_val.shape, 'x val samples')\n",
        "print(y_val.shape, 'y val samples')\n",
        "print(x_test.shape,'x test samples')\n",
        "print(y_test.shape),'y test samples'\n"
      ],
      "execution_count": 5,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(55000, 28, 28, 1) x train samples\n",
            "(55000, 10) y train samples\n",
            "(5000, 28, 28, 1) x val samples\n",
            "(5000, 10, 10) y val samples\n",
            "(10000, 28, 28, 1) x test samples\n",
            "(10000, 10)\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "execute_result",
          "data": {
            "text/plain": [
              "(None, 'y test samples')"
            ]
          },
          "metadata": {
            "tags": []
          },
          "execution_count": 5
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KJzEVNyG0p3C"
      },
      "source": [
        "**Preprocessing of the data**\n",
        "\n",
        "Modifions les données afin qu'elles soit adaptées au modèle, l'input shape doit etre: (,380,380,3)\n",
        "On ne s'occupe plus des y puisque le modèle est unsupervised. On ne va donc modifier que x_train et x_test. "
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "0bcs-yrmwDog",
        "outputId": "17b1e455-f7b9-408d-a022-3aa32d314e34"
      },
      "source": [
        "#Reshape the data from grayscale to RGB\n",
        "\n",
        "x_train_rgb, x_test_rgb,x_val_rgb = np.squeeze(x_train,axis=3), np.squeeze(x_test,axis=3),np.squeeze(x_val,axis=3) #(54149,28,28)\n",
        "print(x_train_rgb.shape)\n",
        "print(x_test_rgb.shape)\n",
        "print(x_val_rgb.shape)\n",
        "\n"
      ],
      "execution_count": 6,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(55000, 28, 28)\n",
            "(10000, 28, 28)\n",
            "(5000, 28, 28)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "GTERTSp-0dr8"
      },
      "source": [
        "#Repeat the image array 3 times on a new dimension \n",
        "x_train_rgb, x_test_rgb,x_val_rgb = np.repeat(x_train_rgb[..., np.newaxis], 3, -1), np.repeat(x_test_rgb[..., np.newaxis], 3, -1), np.repeat(x_val_rgb[..., np.newaxis], 3, -1)\n"
      ],
      "execution_count": 7,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "YiZfYSouyZ6q",
        "outputId": "d7532752-7218-47c5-c5cd-8c355b8a9832"
      },
      "source": [
        "print(x_train_rgb.shape)\n",
        "print(x_test_rgb.shape)\n",
        "print(x_val_rgb.shape)\n",
        "\n"
      ],
      "execution_count": 8,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(55000, 28, 28, 3)\n",
            "(10000, 28, 28, 3)\n",
            "(5000, 28, 28, 3)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 302
        },
        "id": "28XLnXuf1mzT",
        "outputId": "1ec1ea15-f379-408a-9a38-b1ee99e977f5"
      },
      "source": [
        "import cv2\n",
        "import numpy as np\n",
        "IMG_SIZE=380\n",
        "#n=x_train_rgb.shape[0]\n",
        "n=1000\n",
        "image=[]\n",
        "for i in range(n):\n",
        "  new_image = cv2.resize(x_train_rgb[i], dsize=(IMG_SIZE, IMG_SIZE), interpolation=cv2.INTER_CUBIC)\n",
        "  image.append(new_image)\n",
        "  x_train_array=np.array(image)\n",
        "\n",
        "plt.figure(figsize=(20, 4))\n",
        "m=10\n",
        "for i in range(m):\n",
        "    # display original\n",
        "    ax = plt.subplot(1, m, i + 1)\n",
        "    plt.imshow(x_train_array[i])\n",
        "    plt.gray()\n",
        "    ax.get_xaxis().set_visible(False)\n",
        "    ax.get_yaxis().set_visible(False)\n",
        "#plt.show()\n",
        "\n",
        "\n",
        "\n"
      ],
      "execution_count": 9,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1440x288 with 10 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vZwMzkpNSpit",
        "outputId": "2ae6911a-aeeb-499d-c989-97fad349ed68"
      },
      "source": [
        "y_train_array=y_train[:n, ]\n",
        "print(y_train_array.shape)"
      ],
      "execution_count": 10,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(1000, 10)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 302
        },
        "id": "7TOzSeQGL8yF",
        "outputId": "7dbff866-0abd-4bbb-e627-320cbf454fa1"
      },
      "source": [
        "import cv2\n",
        "import numpy as np\n",
        "\n",
        "\n",
        "#n=x_test_rgb.shape[0]\n",
        "n=250\n",
        "image_test=[]\n",
        "for i in range(n):\n",
        "  new_image_test = cv2.resize(x_test_rgb[i], dsize=(IMG_SIZE, IMG_SIZE), interpolation=cv2.INTER_CUBIC)\n",
        "  image_test.append(new_image_test)\n",
        "  x_test_array=np.array(image_test)\n",
        "\n",
        "plt.figure(figsize=(20, 4))\n",
        "m=10\n",
        "for i in range(m):\n",
        "    # display original\n",
        "    ax = plt.subplot(1, m, i + 1)\n",
        "    plt.imshow(x_test_array[i])\n",
        "    plt.gray()\n",
        "    ax.get_xaxis().set_visible(False)\n",
        "    ax.get_yaxis().set_visible(False)\n",
        "#plt.show()\n",
        "\n",
        "\n",
        "\n"
      ],
      "execution_count": 11,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "iVBORw0KGgoAAAANSUhEUgAABG0AAABwCAYAAACkaY2RAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjIsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+WH4yJAAAgAElEQVR4nOyd93MTW7b9l3JopVYOVrCcjQkXmHnz6v3/r+rV986FSzKOkmUrZ7Vy/P7A7E1LlomWMXA+VdSdAdsItU73OXuvvZZmNptBIBAIBAKBQCAQCAQCgUBwv9D+6BcgEAgEAoFAIBAIBAKBQCC4jijaCAQCgUAgEAgEAoFAIBDcQ0TRRiAQCAQCgUAgEAgEAoHgHiKKNgKBQCAQCAQCgUAgEAgE9xBRtBEIBAKBQCAQCAQCgUAguIeIoo1AIBAIBAKBQCAQCAQCwT1E/zVfrNFoRD74D2I2m2lu4+eIa/hDqcxmM99t/CBxHX8cYi3+Eoi1+Asg1uIvgViLvwBiLf4SiLX4CyDW4i/B0rUolDYCwd1x8aNfgEAgACDWokBwXxBrUSC4H4i1KBDcD5auRVG0EQgEAoFAIBAIBAKBQCC4h4iijUAgEAgEAoFAIBAIBALBPUQUbQQCgUAgEAgEAoFAIBAI7iGiaCMQCAQCgUAgEAgEAoFAcA8RRRvBnaDRaKDR3IqhuUAgEAgEAoFAIBAIBL8FXxX5LRB8K7PZfHKcVqtdWsih/09/pv6l/ln0azqd8s9W//7i3ycQCAQCgUAgEAgEAsHPhijaCO4cnU4HSZJgtVphMBgAfCi4aLVa6HQ6GAwGmEwmWCwWWCwWmEwmGAwG6HQ6TKdTDAYD9Ho9dDoddDod9Pt9TCYTjMdjDAYD9Pt9DIdDTKfTH/wvFQgEAoFAIBAIBAKB4NsRRRvBytBoNEsVLwaDAbIsw+/3w2q1sjLGYDDAaDTCYrHA5XLB4/HA7XbD5XJBkiQYDAaMx2MoioJKpYJisYhCoYB6vc7FmkajgWaziel0iuFw+AP+1YK75qbPmUAgEAgEAoFAIBD87IiijWBlLDtI6/V6eL1exONxxONxOJ1OTKdTTKdTmEwmmM1m2Gw2+Hw+RCIRBINBeL1e2O126PV6jMdjNJtN5PN5XFxcIJ1Oo1gsotvtQlEU5PN56HQ6jMdjjEYjcZj/yVkcn1t2PcU1vls+5U0lroVAIBAIBAKBQHC7iKKN4E7QarWwWCwIhULY3NzE9vY21tfXIcsyptMpxuPxtaJNKBSC1+uFyWSa+1myLMPn88HtdkOWZS7aNBoN2O12AECv10O73cZkMvkR/1zBd0CfFbvdDpvNBqPRiMlkgn6/j263y+Nvo9FIjMDdARqNhlVwZrMZZrOZRxa12g9e9pPJBMPhEL1eD71ej6+RKOIIBAKBQCD41Vn04KT9j/r/q/esGo0GRqMRJpMJev2H4zhZPYzHY25oL36f4PdFFG0Et8bijUr9+w6HA9FoFLu7u9jd3UUymUQ0GmWlzXg8hl6v5/Eop9MJt9sNg8GwtLNvs9kQDoeh0WjgcrkwGAxQq9UAAK1WC+VyGaVSSRRtfkJ0Oh28Xi+2traQTCbhdrsxHA5RLBZxeXmJfD6Per0ORVEwGAx+9Mv95dHpdLDZbJBlGV6vF8FgED6fDw6HA2azGbPZDL1eD9VqFfl8HrlcDoVCQSjd7iE33aMFAoFAIBB8O+TNSc0s+j0q5FARhtBoNLDZbPB6vbDZbLyXUhQFvV6Pm5Oj0ehH/HME9xBRtBGsHJPJhEgkgoODAzx9+hTb29uIRCLw+Xyw2+2YTqcYjUbQaDTQ6XTQ6/VzleebDhhWqxWBQAAOhwOTyQSyLKPf7/Ph3mQyCV+bnxCj0Qi/34/Hjx/jX//6F6LRKDqdDo6OjvDixQvMZjOMx2P0+31RtLkDDAYDnE4nIpEINjc3sbOzg3g8jkAgAEmSAHwolGYyGRweHsJkMmEwGKDdbov1d88Q/k8CgUAgENweGo2Gm85GoxE6nQ7AvNJGo9FgMpmg2+1iMBhgNpvBZDLB6/VifX0dXq8X0+kUzWYT1WoVrVaLlcukXh6Px6IR/ZsjijaCW2PZYcBkMiEej+Pg4ADPnj3Ds2fPkEwm4XK5YLVa525uVJFW/zy6Samr1VTY0ev1cDqdcDgcmM1msNvtaLfbyOfzyGazyOfzGAwGGI/HIgb8J4CuryRJCAaD2N3dxT/+8Q+Ew2F0u11otVqUSiXk83lUKhX+7AhWC20skskkHj9+jD/++IMVUJT+NhgMEA6HYTQaMRwO0Ww250zBhbT3btBqtTAYDDAYDNDr9ZjNZhiNRhgOhyy3vk1ozVJnke6z4n57P6Dro/5MaLVaVreORiNMJhOW4Itr9n3Q4Y1+UZF0Op3y+6weefhR7zetWfXrE9deIFgOrRdaM1qtFnq9nu+rFosFkiTBYrHAbDbzvoiet+qijaIoqNfrGI1GkGWZ7SICgQAAoF6vo1KpoNlsYjAYoNvtolaroVKpoFarQVEUsZ/6jRFFG8FKMBgMsFqtCIfDePjwIR49eoS9vT0kk0mEQiFW0VCRZpnhbL/fR7vdRq/Xw2QygVar5ShwSZJ4A0pfb7PZ4Pf7EQ6HEY1GUSgUMBgM0Gq1OBZccH/R6XQwGo2w2WxwuVycHKbX62GxWDginh6cnzLEFdweGo0GdrsdkUgEW1tb2N7ehs/nm7sGOp0OkUiEU93y+TzK5TImkwl6vZ5QRN0BWq0WVquV/cBkWcZkMkGpVMLV1RUqlcqtb/Z0Oh1MJhOMRiO0Wi1GoxEGg4EYjbsnaDQamM1meDweRCIR+P1+WCwW9Ho9lMtlFItF1Ot19Ho9LuAIvh2NRgOn04lAIAC3281F7E6ng06nM9c5HwwGXMi5a3Q6HcxmM/R6PfuRCQ+y20WoGn8dtFotJEmC1WqF2Wxmz0Wr1QpJkmC32+FwOCBJEsxmM4xGIwBwMZQKPqPRCK1WC7VaDf1+Hw6HA/F4HMlkkvdU7XYbjUYD/X4f0+kUvV4P2WwWR0dHOD4+RqfTEUWb3xhRtBHcOrRxIQ+bJ0+eYGdnB9FoFLIscwdqGfSQGwwGqNfrLBMcj8cwGAyw2WxwOp2srNHpdHPdXovFAo/Hg1AohEgkAkVReFMiNqT3F+pQWiwW2Gw2VmHRNev1emi1Wuh0Ouj3+8KE+A7R6XSQJAk+nw/hcBiyLC/1RjEYDHA4HPB6vQgEAvD7/VxwFQeC1UIKRJvNhng8jidPniCRSGA0GuHdu3fo9/uo1Wq3vmb0ej1sNhtsNht0Oh36/T4URUGn0xGFmx8M3VNtNhtisRiePn2K/f19yLKMer2Oo6MjvHnzBul0GrVaDd1uVzwjvxO9Xg+/34/9/X0kk0lYrVZ0u1322KvVaqjX63Nr8a4VN1TIczqdPEKuKIoYvRAIbsBgMMDlcsHr9cLpdEKWZfj9frhcLjgcDsiyDJfLda1oQ+uJGo3j8RitVgv1eh3dbpdVzMFgELIsQ6fTYTgccpOLir6np6fQarWoVqvI5XIYj8c/7L0Q/FhE0UZw6xgMBvh8Puzu7uL58+d48uQJotEoPB4PLBYLgPmNCv1vckzv9Xqo1WooFAooFotoNBoYDocwGo1wOp3w+Xx8KCQlBhVuzGYzXC4XAoEAQqEQKpUKFEVBq9USZl73HCrKuVwu2O12GAwGlvDXajWUSiVUKhXU63V0Oh3x4FohVJQxGAzweDwIBoMIhULw+XxsDq4eaaSigSRJcLlc8Hg8cLvdqNVqaLfbP/hf82uj1Wqh0+m4YL2xsYHnz59jf38fvV4P0+kUx8fHK1GmGY1GLtSZzWYMBgM0Gg00Gg20221W3YgC692i0Wi4GxyJRPDgwQP861//wvPnz+H1elGr1eD1eqHVankNT6dT9loQfB1UIKOx3ufPn2N3dxeSJLHfVzqdxuXlJSaTCdrt9p0qRampRYV1v98Pj8cDg8EARVFQKBQ4/U/wadTq8MVrqB4zE+vo5+Emxb/BYIAkSfB6vYhEIgiHw/B6vfB6vQiHw/B4PBya4nK5YLFYrnnakNJG7WnTarXQ7XYBfPDmJJWO+vt0Oh0MBgOm0ynsdjtKpRLevHkzZ3Is+P0QRRvBrWO1WhEMBrGxsYH9/X3s7e3B4/HMFVdmsxkmkwk6nQ4XVRqNBrrdLnq9HhqNBorFIsrlMs92ktN6JBLBxsYGBoMBdDodXC4X32ypg+TxePiGajabxSjNTwAdPB0OBxwOB49DTadTtNttVCoV5PN5lEolUYRbMXq9ntU1e3t72N7extraGpxO59zXqX2oaFTGYrHMbV7E5nW1ULHa4XDA5/NhbW0N6+vrSCaTUBQFXq8XFovl1u+BFFfqdDoRCoXgcrkwm83QarVQqVRQLpdRrVZRr9eFIfUdo9Vq4XA4sLa2xmrXg4MDJBIJNhbX6/Vzh0xSM4r1+nVQ4TIYDGJ/fx///Oc/8ccff2B9fR0WiwWNRgNmsxnj8RiKoqBYLGI8HrPP1KohnzhZlvn+EI1G4Xa7MZ1OkcvloNfreWRLFFhvhu61kiSxqsJgMPA4P+1l+/3+j36pgs+w6E1D0dt0TU0mE1wuF2RZhtvtRjAY5LFHt9sNv98PWZZ5NOpLzxl2ux1er5c95sijc1kxhl4jFVlX8RwX/FyIoo3gVqHNos/nQzAYRDAYvDG6ezqdolKpIJVK4fz8HFdXV2i321zMaTQaPBJD8XdGoxGxWAztdhtarRZ2ux02m42Nv7RaLYxGI8+dUgqVuNHdf6hbuXjwB8CR0oVCAeVyWXQEV4zBYEAgEMD29jYePXqE7e1teL3eax2kRagYSwop4ZWwesjri2TaTqcTFosFOp1uzvR0FRgMBtjtdvbRMZlM6PV6KJVKkCSJC66iaHO3UDMjkUjgwYMH2N3dRTAY5GehVqtFJBLBkydP0O120Ww2kc1mxXPyG7BYLEgmk3j06BGeP3+OR48eIR6Pw+1286FQURQ4nU5Wj3a73TtrOtC4+ubmJvb29rC3t4d4PA6Hw4F2u42joyNes6RqFiyHGofhcBjhcBg+nw+SJGEymaBarSKTySCVSgnF2j1HXbCxWq18jqBiDBVmaByKvsbpdHLBjhqLZrOZCzZfev/U6XTXgjQ+9b30s8X9WSCKNoJbgW4oVquVK9MkGVSPUxCTyQSNRgMXFxd4+fIlXrx4gZOTE3Q6HZYRUqQzmVsOBgNotVooigKr1YpQKIREIoHhcMhFG3VyiUhE+Lkg82qHwwG73Q6z2QytVovhcMjd+2KxyLJSwWrQaDR84Hv48CGePHmCjY2NOUXbMiiRhrwRaP2JjcZqIQNiWZbh9XrhcDjYX6bdbqPb7a6so08FI7vdzp3H2WwGj8cDnU6HVquFQqGwkr9bcDM01ri+vo79/X1sbm7C6XTyc5gK5Gtra9jY2MDx8bHo4n4DWq0WPp8P+/v7+J//+R/813/9F6LRKL+XZDZMxezBYMC+bHcFFeD39/fx3//933j8+DEikQgMBgNKpRJ6vR5SqRSHOwyHQ2GiewOSJCEcDmN7extbW1uIx+NwuVwYj8e4uLiAVqvllB/x/t1f1OOC1HTw+/2IRqPY2NhANBpFKBSC3++H1WplI2FK4FMn2NKI6fey7GfQ/bjf76PX6wlLAMGPK9qoI9RoIdBiALD00E2xiXQwEPOj9wdSuNhsNj48+Hy+awc9irBrtVpIpVJ48eIF/vzzT7x48QIXFxcYj8f89TcVXTqdzo1eCTSX3+l0+MAiOv33HzJ6C4fDiMViCAaDkCQJw+EQ9XodxWIRpVIJzWbzR7/UX4rFezAA2Gw2bG9v4+DggFPfIpEIjEbj3GZ+Op1eO+Sp1VKSJMHpdLIZMY04ipjZ24WSLcgoOhAIsEm7uoC2KqgIQClFVHjt9/u4vLyEyWRa2d8tWA4lKcbjcWxsbLDKhqBrZjQaIUkSTCbTtc6vYDnqvavX68X+/j7++OMPPHv2DBsbG9xAInVopVJBNptFNptFqVSCoih3prLR6XTw+XzY3NzEw4cP8fTpU36Ns9mMXysh9tMfoeeiwWBgv7Z4PI7t7W3s7u5ie3sbyWQSHo8H/X4fkiShVCrh8PBQFD/vObSGabQxHA4jmUxiZ2cH+/v7iMfjPFZ8Wx4y6j2P+hf9mfq/Go2GP3ez2YzPMsLc/8tQexSR599ioU0d4Q58EBJMJhOMRqO5GgP9ui/8sKKNeozF6XSyC7fVaoVGo2F1BUU9z2YzDAYDnhlVFIUj0cSH+MdD15M27KS2sVqtc183GAyQz+eRSqXw5s0bvHjxAu/fv2cjvE9B5orBYJC7upIkzW08RqMRFEVBtVpFuVzmONP7tOgE17FYLPB6vXzIiEQisFgs6Ha7KBaLKBaLnCImuB1IJWGxWOB0OmGz2WCxWOB2u7Gzs8Myer/fD0mSWAH3qfst+dqQIbHP52MjPkVR+AE4GAxEMfUWofl7n8/Hkm6LxQKDwTC3MbltKNJdURQebTWZTHA6nSwlVxcLBKuHEqMcDgecTiccDgePRanXG/lwkCmmOBB8GWTmK8sy1tfX8fjxY+zs7CAYDPJehMZlUqkU0uk0Tk5O8ObNG1xcXKDZbK78faZDn8PhQCwWQzKZRDKZRCgU4tfYarVwcXGBTCaDUqmEdrstfOL+Az3HyGRWlmX2aUwkEojFYohGo4hGo7Db7ej3+ygWi6ywEuvofkPBCWQ07PP5kEgksLOzw6Pgt2mroFYcj0YjLgx8qqFiMplgs9kwmUygKAp6vZ5Yn1+JRqPh/SiNtNntdlgsFk75Im838qRqNpuo1+vsTTUcDu/V+fGH7aYMBgMsFgtkWUY4HMba2hqCwSBcLhd0Oh16vR7a7TbG4zFXOhVFQalUQqFQYOk1fehFpPOPhW6CZOZlMpnmfGyoqqwoCtLpNF6+fIl///vfODw8RLlc5oi7m6CKeCQSwcHBAXZ2drC2tgZZlufGr0ajEVqtForFIvL5PCqVCjqdzr1adIJ5tFrtXGeYNpdGo5EjDkulkhiLumVorMbj8SAUCnHspM/nYyNbn88Hk8k0t3m5aUOqjm13Op3w+/2YTCawWCyQJIkNxcnwFICY/b8F1J42NJIqSRI/N1f5/tL9tlKpoFKp8DOc1Fa0KRIHmdWj9migJhiNmKqhMcbBYIBsNot0Os33V3GNPo/RaITf78fm5iYODg7w+PFjxGIxblCNx2Mu2Lx58wbv3r3D4eEhTk9PUa1W7+SeR55GkUgEm5ubSCaTCAaDsFgsmM1maDQaODw8xJ9//olXr14hnU6jXq+Lpgg+Gqzb7XYEg0Ekk0kkEgl+JgYCAS6I2mw2VuSQ8b5I9/k5IAWG2Wzmotza2hqHpgBf9+xcVuBZnBRRjyxTQUCdwKnGZDKh0+lgMpmgXC6j1WqJRtdnoD0o7Tn0ej3sdjvcbjc8Hg8CgQACgQBcLhdsNhusVitMJhMmkwlarRZKpRJyuRyurq5QKBS4oUHX4Utfwyqv0Q8p2pCU2uv1IhaLYWtri7vrtGA6nQ4nxJBErNlsIp/Ps9S00WhgNBpxjJrasJak+6uWKaolb2rp2+8KFdAUReHZXpfLBQBoNBo4PT3F27dv8ddff+HFixfI5XJftFGw2WyIxWLY2dnBo0ePsLu7i7W1NTgcjrlrPB6P0W63Ua/XUa1W0Ww2WZEluF+QdFEd0x6LxRCLxeDxeNBsNlEsFpFKpXB1dSWSTW4Z2tjH43Hs7OwgkUjA6/XC7XZztKXT6bw23qK+Buq1p97s+v1+jEYj2O12KIqCWq3GD8Bms8nx7bVaTRTjvhPadKo3JHq9/pqnzSrWDpmqNptNKIqC4XDIxXtJkubMxAWrRafTsT8DeTK4XK5r7/90OuUN6snJCU5PT1EoFETR5gtQJ1ju7+/j6dOnePToEcLhMCwWC0ajERdsaJ/z+vVrnJ6eol6v39n7azabEQqFsLu7i4cPH2Jraws+nw9arRatVgsnJyf466+/8Oeff+Lw8BC5XA6KotzJa7vvqEe1aUx4e3sbGxsbXJyj4oxOp+OGJTUrPB4PJEkS7+cPgM58anXppzwuaUKAEp28Xu9cE/imsIVl402L/5t+BhXI6UzbaDSgKAq63S4XcOn1qvdT5PE4nU6RyWSQz+fRbrfFWeY/0HtFzQqTyQSr1cqKcVIbkgLZ7/dzbLvH44HD4YDNZuOiTaPRQD6fRyaTYXVds9nk86SiKKwQVxdw6LN1V+f/H1a0sdvtiMViePToER49esRdXdpw9no9dDodVtpMp1MoioJyuczjEo1Gg1NKSNZEi4G+Tz2n/bVv5jK/hkWj2+FwyAUjiqumDfLvtAGaTqcYjUY8x51Op2G1WtFutzlaslKp4OTkBK9evcLJyQkKhcIXy/3ogBmNRpFMJrG2trZ0Q6q+UZIEUYzQ3U/U6iyK+qabpdFoxGAwQKlUQiaT4U2leGDdLna7nSX+29vbPFZDnQjqHt6EeqNCUlSn04npdAqTyYRgMMjKGiqq06HGYDBgOByKoup3QHG+Xq8XoVAIoVCI3/9Go4FyuYxGo/FZJeO3or7XUnypJEmwWq08HrXMiF5w++j1erhcLsRiMWxubiKRSLBSTg0lehWLRWQyGVxdXaFaraLf74tr9Blo9Mzn8yEWi7Fpqfo9bjabSKfTePfuHd68eYPz8/OlBRv1ofK2MZlMnP734MEDrK+vw+l0Yjgcolgs4vz8HMfHxzg5OcHl5SV38QUflFRerxcbGxt8PllfX0c4HIbD4QCw/Gxgs9kQCoWwsbGBcrmMi4uLr+rQC74fUm2TTxcAttro9XrodrtzTXZSY5jNZtjtdkiSNPfzFq8zqfkpGIVEA5SUSaNPdLCnMxH9InuPdruNXq/HRRsq/qnR6/UwGo2YzWacsttsNsVe6T+QvQopS0ll7HK5YLfbWXFDI47LlDZmsxl6vR7j8RitVgtOp5M9WWOxGO9bKclYLQ6h66u2bLmL8bUfVrQh5cTBwQGePn2KcDgMq9UKo9HIRRo6cAMfNhq9Xg+hUAitVovfTFpAVMFsNptc7CHzocViy5e+Rvrv4mgAjWSNx2NWlJRKJZRKJcxmM76gv9MGiHwq1NGhiqJwKgHJzwqFAi4vL1GpVL5aikujHFTcW5Z2QWZTagO5VXo6CL4dKtrQ9TIajXzNptMpOp0OqtUqSqUS6vU6P3AFX8+yA8JsNoPVasXa2hr29vawvb0No9GIyWQyN9ai/vplqOW9NKZDhxvaxJAh+GAwQLlchslkwmAwQL1eR71eF9f1G9Hr9Vzs9Pl8cLvdMBqN6Ha7KJfLyOfzKz+Qq9ex2Wzm+XGSHt+mN4DgZtQjMclkEtFoFLIsX/MUIi+ber3OijdFUcRozGegMUS1X5DT6WSDdqLdbiObzeL09BSZTAaNRuOT985VoFayU/FOp9OhVqvh6uoKmUyGjZGbzaYo2KgwGo3w+XxIJpPY29vD1tYWm9IC18cf6NqTumlnZ4cP11dXVyI84Q4xGAw86kQFNlKC0j6j1+tdU9586VTGbDbDcDhEs9lkFf9i8Em73Uar1eJCDQWnUIOKfp+KPGqljRq16KDT6aBWq4mizX9Qj/b7/X6sra0hHA7D5/PB4/FwQ1+v10OSJC7kORwO9s5VPxdJpaoOdSBPG/J9o+tL/5t+P5vN4vLykq/nqvlhRRuTyQRZlrk7KMvy3IeW5kTVmM1mOBwOBAKBue4ejeOoizlqpY36JnuTtP9zr5deE3UWSVlSq9VweXmJdDoNvV7PxZrfrXtM12E8HmM4HKLdbiOfz8Nms8FgMHCEN93UvuYATlHii0abi5sleh3qQ6SYL76/0H3AbrfzfDh1R+hAT8XQWq0mDKW/k8UDgtlsnvMR8ng8bAKvTohaLPR86ueSTJw8qKhQTj+T5rO1Wi2P79CGhIz5BJ+HFGputxtra2tYW1tDIBBg48JKpYJ0Oo3z83MUCgV0Op2VHBDJsNNqtcJut7PkeNHoTxRtVo/JZILH42Hj2Wg0ysplNdPpFN1uF9VqFfl8HoVCAc1mU5hcfoJFY1qPxwOn08nBGQC4YVcqlXBxcYF0Ov3J5tRtr0d6HRaLBaFQCLFYjBUiFosF7XYbhUIB6XQaFxcXyOfzqNfromCjQqfTQZZl9gLa3t7G2tranKL7putGRRu1gkKr1SKVSq3s/iv4AI3C+P1+9iCSZRnj8Ri1Wg35fJ5tNCjghhKCBoMBj8C0Wi3IsszBN5PJhBUbpFCs1WoolUool8usumg2mzz21Gg0UK1W+SxK4gIaoaFGFjX/b/K0oX8XAH69yxJzfxfoPEcNwUgkgkgkwjHtFJrh8XhYrb8Y006/lp0LSVVO4/1qcQYV27rd7pzqplKpwOl0AgBP2qx6D/vDjIjpw9vv99HpdGA0GucOCBS/BXw0FyL1BMmi1Pj9/rlKJo0o0WJYnHP8HMvmFqloQ69zPB7zRTObzdBoNOynQxf7d7tRk9kWHboXI9y/Ze6PNiGRSATBYBA+nw82m21pwYYMrOkw2O/3f8vr8DNAN8hQKIR4PD4nP26326hUKigUCnNqgd/1gfW9LBarzWYzNjY2sLOzg/X19bmiORXLl90Db1Igqn82bXJuwmq1cnGbZpFPT085IUxc40+j1WrZ6Dkej+Px48fY3d1FOByGyWRCq9XC5eUl3r9/j8PDQ2QyGSiKsrKijSRJLCmWZZm7WLRREkrH1aMek4tGo4jH43NpRmpmsxk6nQ6PR2WzWWFC+xnI0NLj8SAYDHKCpc1mA/BxbCKTyeDk5ATpdPqrxr+/F51OB5vNBpvNhmAwiCdPnuDRo0fY3NyE3W4HAG6kpdNpTozqdDp38vruO9TgpRH8RCKBRCKBcDh87axxEyaTiX2DgA+HQBq3yGaznP5DKgv1GUfw7VDjLxAIYGtrC/v7+0gkErDZbFAUBRcXF6wspIM5vff9fh/NZhO5XA6np6cwGAzw+XwYjUZoNpsYj8ecsEleYJVKBcVica5o02q12P+k2Wyyh9/i+eO2nsGrHK28T9A+ggz2qSlEKkJqWK2vryMajcLj8cBut8+F4LjexugAACAASURBVKhRiwum0+k1E/FPWQFQzYKuc7/f5wYkjb6RTcsvZ0Q8m83Q7XZRKBRwcnICvV4Pj8fDb9h4POZqNfDRkIncnq1WK8uvaVNCHV7yY1DPLdKff63qYtG/hn6PYsin0ynMZjPfACiSXF2V+12hotb3bgRpNjsajXK6zbKxKLouZPZVr9fRaDREjOU9RqvVciLY+vo6IpEI7HY7RxzWajXUajU0Gg1hknlLkHw4Go3i2bNn2N/fh9/vn1NDLBZoCHXx+msO4YtfazabEQwGed6YvHNozFXwaagbnEwm8fDhQzx79gy7u7vwer3QaDRoNBp8eDw9PUU+n19Zp5e6Xh6Ph9UH6gaMKMDdDSTrpkMidRoXobU4HA7RaDRQKpVQrVbFM/IzUKHb5XKxYanaU48KNm/fvuUCdL/fv7PXRwWDWCyG7e1tPH/+HA8fPoTf74dGo8F4PEaz2US1WkWlUuFnqlifH6BnUTgcRiwWQzgcnru+n3reUXOYDpbAh6YzKVmj0SguLi5QLpf5wN9oNNDr9YSP1HdCVhuJRAJ7e3t4/Pgx9vf3EQqFoNVq2bz38vLymtkvKePIY0+n06Fer0OSJC7EjMdjHvnVarXodruo1WqoVCqo1+tclOl2u5wIRdME4tp+mi8pPJFi2+Vywe/3IxQK8UhUNBpFIBCA1+tFIBCAz+fjs+Gysf7RaMSja91ul20AXC4XpxCrv2cxZINUPuqQBa1Wy8/RcrmMarXKNgCrKsj+sKJNq9VCOp2GVqtFtVrlN1yn07E3Srvd5oelw+GALMtsFuVyuXh2jcYqqChDM/Ykt6f//y3dPrVChKrxer2e/67pdAqfz8cSuWKxyPGnwnzx+6DZQoqsJCUGLS71+0vSxWq1yg/HRqMhpL/3GDLOJHPpSCQCm83GpmBqGaJYR7eDzWZDMpnE48eP8Y9//AM7Ozss7wRwY0focwobKprSLzLXI4+ixZ/ldDp51NVisaDT6eDq6grZbFYcJD4BjYqSyeiTJ0/w8OFDlvArioJcLodUKoXz83M2GV2VMT5tqnw+HwKBAJxOJ7RaLUu51RJwwe2jHomheX31mOniHoT2M9RgqtfromDzGWjNybIMv9/PEnybzQadTofRaISrqyu8fv0aL1++5KSou7qPUcEuHA7jwYMHePr0KZ4+fYpkMslFB0VR5g4W7XZbKJBVkAcQjQqHQiFIkvRFnm70Z9S1lyQJwWCQTcE3NjZY3XR+fs5jG7Va7VoSjeDr0Ol08Pl82N3dxT//+U88e/YMGxsbsNvtXEghM99lo0XD4RDVahUajQbtdhvpdBo6nY6bv5PJBBaLZa6xRFYcZMNBex86b5JB7Sr51dctjbupLVQSiQTW19cRDAbZUJimXKxWK0+7APP72NFoxGbC1WqVVVCTyQR2u533TiT2oFAhUi/Ss5RsTwaDAabTKfvleDwehMNh9hyikbxVJX39sKINbdJ7vR6KxSLcbjdsNhtHldbrdbTbbQDgJAp10UaWZTZelGWZZVEmkwkajYYXV6/XY9MiugCfinOj10dqH0qiMhqNbECnlkuS14qiKNw1NpvNn5RZCT6PxWJBOBzGxsYGHjx4gIODA8TjcciyPOdTRCNRnU4HuVyODyokXRTcXyilgTwYwuEwJEmak5mSck3w/Wi1WsiyjPX1dTx8+BCPHj1CPB7nUcNl3jXqIs1ihCZtTihJYTAYoN/v8+ZIrZAknxvqdlHh1Wg0Ym9vj7vUx8fHwrhxCdTJXXZfTCQSMJlM6PV6nFpzdHSEi4uLlY6bkScVRcSrxxvVRTzB6qDxQuo2er1eOByOa4lRashAkZSoguWQXJ6STjc2NrC9vY1kMolgMAibzcapmMfHx3j58iVevnyJs7MzVKvVO/nsk9cOGVDv7u7i8ePH2Nra4n1qv9/H1dUVUqkUUqnUXFqYYD7GfXt7G7u7u4jFYnC5XHPj/WprBPXzkZ5p9LW0Jun7IpEIQqEQq3fIZoG8OMU98tvQ6XQIBALY3d3FkydP8OzZMzx48IDHAWkvQueDbrc759cHfLg+7XYbw+EQ9XodBoOBPUzoa2mNUUiDOjVqkV+9mHKbLL5XFL9usVj4zB+JRHgMKplMYmNjA8FgkOsFtObUe1O6fmS9olbs12o1TtScTqfsXUO1gV6vh2w2i0qlwh5J6nu9WgRCI1gejwfr6+v879DpdEilUmzXctv8sKINqWnoxlWpVOaUNmRWSxtDm80Gu93OFTW73Q5ZluF0Olmyqu5+kIyt3W7zGAapcmi06abNLFXUyHF8PB5DlmXE43Gsr6/PqXooUUCtvhEL9/ugcbl4PI69vT08fPgQu7u7CIVC7PBNUBR8Pp/H6ekpR1iKGf37DyUN+Xw+9gegIgFJDPv9vtjU3BJ0AHG73fD7/fD5fHA6nZ9NiVo2JkVm46SGIg8pSkoAwIVuUkVSUVstYZ3NPiRY0aHT4/GIaPcbMJvN8Pl8SCQS2NrawsbGBvvYDAYDZDIZvH79Gq9fv0YqlUKtVlv5+0heH16vFz6fjz9Lain6lyZzCL4eg8HA77/f74fb7YYkSUuVxXTYbLfb3NASz8jlaDQaWCwWyLKMcDiM7e1tbG9vY2NjA8lkkqPUydcgk8ng7OwMqVQK+Xz+zp5bs9mM1R3q+zp1nafTKRqNBq6urpBOp+eKNsPhUOxV8WEPT54o1M1fW1vj2GA11KgYj8fcfKBGMIBr/wU+NiDpZ9Hodz6fF+//N0Br0+v1zo1EUQMK+KCgKZVKyGazKBQKqFQq7DGz+Eyk8+hgMFg6HTGZTIRif8XQeCIpdmnPSGbDgUCATYc9Hs+1dUnK3vF4jHa7jXK5jFKphGKxiHw+j1qtxglfVMDRaDSIRqM80WEwGFCv1/H+/XtcXV3BYrEgmUzOJduSt676M2K1WhGJRGCxWPjP+v0+arXar1O0AT4aApG5T6fT4coVLRKSmOn1eiiKgmq1yqZEakmUzWaD2+3mVCGDwcAXrtlsssGY1+vlGzHJttXQHBupNyi5ZjqdIhqNotvtwmazXZsXp8qe+tAiDppfD42ekZlePB7H5uYmtra2EIvF4HA4rqWB0SgNRWyu2sNBcDvQg1cdx6fe8Czragm+HZL4k1JRrXpZhN7zxT9TX5dOp4NSqYRcLsedi2aziVarxZsfKq7TwzccDiMQCPDfTdBssc/nw9raGicxiHvoPBaLBcFgEOvr60gkEggGg7BarRiPxygUCnj37h1evHiBw8ND5PP5O9lo0oHR5XJBkiT+fVGsuRvURRsqwi7zsqE13e/357zexPVZDhk7h8Nh7Ozs4NGjR9ja2uKUNhoD7HQ67FNCKYd3Oc6rbmpSQZwONOTZUSgU5mK+y+WyUNmooD2n1+udS7NVq+VpzEId10yfEYPBMPcsXXbtDQYDPB4PBoMBCoUCUqnUFxscC+YxGAw8HvzHH3/g4cOHSCQSnFbZ6/WQy+VweHiI9+/fI5VKccjB53xmxF7zx0BhM9SMohFU8rBxOBw8bUONIXqmDQYD9ogajUZoNBpIp9M4OzvD+fk5MpkMms0mj7CRYbBer8d4PEYkEkG5XIbRaEQ+n8fh4SHOzs5gs9kwm83gcrngdDpZMED1g9FohOFwCK1WC4/HA7fbDYPBMDeiXq/Xb/29+qFFG5JQ0w0QwNzFWJToL/oqkHyV5uqpm7usaEMjVHTwv6loQ6+t3+9z0Uan06HVasHn82FnZ4cPE/T6qXJOpn6KolyT4Qk+j06ng9VqZbl9IpHg+D6PxzOnZKLPCcVYnp+f4/379zg5ORFFm58AWrPkwbAYqalOGhN8O7SppwMIxSJSN35ZMhShLt6ok/MajQay2SwuLi5wdnbG0bHNZhPNZpOLNjQa5fV6edbXaDSyuz8xnU4hSRKi0Sh2d3cxGo1weXmJarWKXq93p+/XfcVgMMDr9SKRSPCIBnWHWq0WLi4u8ObNG7x8+RLv379Ho9FY+Vy92Wzm8WS1Ykv9XKdRObGObx/q9LtcLgQCAYRCIbjd7rnRDLXxMMV8ZzIZFItF4RX2GSwWC0cI7+zsYGtrixWher2ejS0rlQrv/drt9p29p2rPB+pGk3kuHV4zmQwODw/5IJLL5UTBZgHyK6Iuv9vtnhuLooYsNSVonIY8+UjhZjQa5xqK6iIOPQ+pGRmPx5FKpZDL5e7U/+hnR6PRsAn/48eP2XCbUr663S6y2SwODw/x4sULvH37Fufn5yiXy+j1euJ+dw8xGo0IBoPY2trCkydP8ODBA4RCIbhcLlaOqlOkgI/rktK8yuXy3JjbyckJDg8PcXx8jGw2y3tSAOw9pNVqYTabuU4gSRJKpRJSqRQODw85BdPtdsNut2M2m8FkMrFwgEbkKCWO/BsLhQK8Xi+rHW/7M/fDijYA5g4M30u9XkelUmElTa/X442rRqNhg1o6rCwbj1IfFinaq9/vw2g0zqUQqQ83o9EIrVaLu86FQgGNRoNHBARfDpk7URoJSX1pDpgWAKmh+v0+qtUqstksUqkUzs7OkMlk2MdB3KDvH5TiRkVWWZZhs9lYZaeeHV9WWBV8HZRgEQ6HsbW1hYODA2xubsLv9/NDaZFFhcR0OmXDvVarhUwmg9PTUxwfH3ORVFEUHrsYDofQ6XQwm82wWCxwu90YDoewWq3w+XzXRjJ0Oh08Hg82NzcxGo04RjqdTiObzf72KQxk3EwpaxsbG+y5QHGTpVIJFxcXOD8/Rz6fX+m6IcPNYDDIygOHwzGnnqIRZ+p+/c7Xb5XQeBodOG9KVxwMBiiVSkin03j//j3S6TTq9bpQs90AFcTUoRek5Kb3lvZ+6vCDu9j3USGeElRisRh2d3extbWFaDQKu92O6XSKUqmEd+/e4d///jd77Qi/sA/QM06v18PhcLBS3+PxzB22+v0+K5Wy2SxKpRLvL2msNxwOIxKJ8EGNGslkmaBei5IkIRKJYGtri8cnUqkUWq3WXGKuYB66Xna7HfF4HLu7uzg4OOCxKHWKW6FQwNHREV6/fo3j42OUSiUoiiKeQfcQvV6PQCCAzc1N7O/v4+HDh5xoSunQy5qJ7XYb+XweuVwOuVwO2WwWzWYTo9EIiqKw0iaTydy4pshaYzAY8GdjOByi1WqhUCiwnxHtk4fDIScYm0wmPqeYzWb+/NG9hBR4v1zR5jaZTqcc46XT6ebGq0hCRfI48rRRV8TV5pr0Z1TwIbNhh8PBvjvEcDhEs9mcK9rU6/W5D4JgnptkpPTeGwwGmM1m9gpajF4jsylKi6LZRVI5iY3o/UWn08FisbAXFRVsliGk+9+HWuJP3lD7+/sIh8M84rlsLS573weDAbrdLorFIs7Pz3F0dMTKtkqlguFwyMZr4/GYTeUMBgN6vR4kSUIsFkOn07lWUKCOsfrQT/fY8XiMarWKwWDw282Vk8KJvGzIzJLGM0gpRQWSVqu1cj8geh6S+V48HofX671mfEvz491uVzwLVwS9pyaTCXa7nVWLyza6g8EAlUoFqVQKJycnyGQyYgTxM6ibeGrlp/pA3+l0WG5/V+petQJoc3NzzuMqEAhwmEehUMDh4SFevnyJw8NDkRS2gMFgmEtdo7Fh9dppt9u4urrCmzdv8O7dO1xcXPBoBSncIpEIqtUq+23Qz1P7XgIfn6sOhwPJZJJHK+x2OzcohM/QcsgfLxgMsq9UNBqF3++fUzgNh0NUKhVuYGSzWfR6PXGfu2dQU8/lcmF9fR1bW1vY3NxEPB5HKBRif0tg/ry46GF6dnaGi4sLfp5RMiIV0j+3ZyRPWrJpoELReDxGs9nE2dnZnGet2Wzm0Umr1QoAc0mNaj+/VfHLFG2AjwaZpMRYZDgcsoEYff3i91Ncrdo3Rx1JTDdj9ahAsVjkil+pVBKjOZ9hmV8GAI5Qo4eexWKBVqudu+GqR9KKxSKurq5wdXXFEjdxc77f0DWWZZkd4KloQ4XTXq+Hfr/PnleCb4OiYIPBILa3t/H48WPs7OzwbK66WHbTaBQVR+v1Our1Oi4vL1luf3x8zJtYYjweYzqdQqvV8gFhMBjA5XKx902n04HL5eK/R6fTweFw8AMT+Fi0mUwm0Ov1qFQq/LN/F/R6PY+Lrq2tIRqN8ggM+SFQ04AS11Zd2CJ/uGg0ymNafr9/bg13u12OFyaPI/E8vH1IDUJJG06nc+nBkwoM5XKZizaXl5c8sihYDimu+/0+ut0ue5mYTCYe/6P9hl6vvzYeswpoxGZ9fR0PHjzgpCNKWKGOL/l6HB8f4/379yiVSmINqlCvHbUfkHosigoAqVQKr169wv/7f/8PqVSK1fdk/JzL5VCtVtFqtRCLxRAOh2EwGNi4dFG5ajabEYlE+M+BDwqRer2ORqPxQ96P+wwVyEKhEJLJJPb29jhFiHzU6FxQrVaRy+VweXmJbDaLVqslPvf3EIvFwh6G+/v72NvbQzKZRCgUmvO3BD6e04fDIWq1GorFItLpNKeNplIpXF5eotVq8fdQkMnnrr3JZOJkMPLHlWUZsixz6lg+n0cmk2F7AfqZVLhR23aQP+8qzy6/VNHmc4lQXxNBOpvNOMN9b28PDx48QCKRYEn6dDpFrVZDOp3G+fk5Li4uUCgURMHmC1GrnLRaLRtRJRIJrrgGAgHY7fa5B+l0OuXD49nZGd6+fYuTkxNcXV2JG/RPwGLRxuVycXEOAFfRySdFHPi+HeoMuN1uRKNR3ugsztrT/ybG4zGbqjebTTbZpFHE4+NjnJ6eIpPJoF6vL70+6nstGeVms1lcXl5ibW1tznyaZoT1ej2CwSDfDyilT6/XczHvd5KPU6JCKBRi8+G1tTU2vKNnUDabRT6fR6PRWHnRhgw1k8kkdnd3sb29jXA4DKvVymrXXC7HHbBKpSK8BFYEFTvVo8Q0W3+T0iaTybAxJzWoBJ9GrcJWv2fqbjF5lUwmE/R6Pej1evZOHI1GcxHBn+vC0p6I7n309Wazme8Fm5ubePDgAba2thAOhzk5lV5vvV5n37FKpXLtOq+6uPQzQGNMFosFFotlbsxhMpmgXC6zV+K7d+9wcnLCDYper8d+RsViEfV6nWOiKaWRxqwWO+/qQ+JgMOBD6KrGKX5maJR+bW0NW1tb2N/fx+PHj7G9vY1QKMT+TYPBALlcDq9evcK7d++QTqfRbDbFe3kPoT1EIpHAzs4OHj9+jIODgznvUloHo9GIVd6lUomb9OQ7c3Z2xqNR39Kw12g0nBTdarWg0Wjg9/uxubkJm82G0WgEp9PJe1F1KiY1HOnnzGYzKIrCjclVjYX/UkWb20Sr1cLlciGZTOLhw4d48OAB4vE4O5STt8PJyQnOz89RKBTu1ITuV4FM4EKhEEt9Y7EYx9m6XK5rXVwyHj48PMS7d+9wdnaGcrn8Wx3oflYWVWySJMFqtUKn02E0GvHBIpPJCPO474QKIkajEVarFVarde6Bszh2SIzHY9TrdVxdXbHMuFAooNVqoVar8Rjol86Jk6S1VCohk8mw/DUQCLCpJ/39er0eXq+XDz3U6W42m7/dGidvH5/Ph2AwiGAwCLfbDYvFwhsEUnmSEd+qlUgGgwEOhwPBYJC7+x6PB0ajkTthFH+cyWQ4Wlhw+5BUm5Kj6LNxE5Qc1Wg0hMLmC6CiidFoZI8StRcKxWxHo1F0Oh1otVq43W70+30uqrZaLVZQdLtdTKdT9nVTo/Z3pBhpi8UyJ9mnw2ssFkMikcDGxgai0eic+TTw8f5Nf+fiYUaMHX9A7Z9HBzA6hCmKgouLi7lwi0VTfFJ8U1ospWHKssyG1Tqd7tr4N32GKEqYRi/oNQnAa8xsNsPr9SIajWJrawt7e3vY2tpCJBKBJElze5W3b9/izz//xOHhIcrlsrjH3TO0Wi03GkgtuLOzg52dHSQSCXi93rmGw2w2Q6fTQbFYRDabxfn5OZupk49poVD4rrAKStc7PT3le4DX6+XC4Hg8hslkQigUYr+wxXFHuo+MRiNUq1XUajVWPYuizR1iNpvZIOnBgwfY2dlBIBCATqebM/U7PT3FxcWF2Jx+A2QslkgksL+/j4ODA55TDQQC8Pl8kCSJR6So2npxcYGTkxN+oGazWbTbbTEa9ROgfhhbrVZWVGg0Gi7IpVIp7gZ3u90f/ZJ/etReXYu/ry7iAOBxqEKhgPfv3+P169c4PDxEoVBg3xpFUZYeBj4Fyb8vLy/h8XhYQUcdR3o9wIf5dY/HA71ej3a7jVKphMvLS5jN5t/KUJDG29xuNx/K6SBAJuzUeapUKndi2Gw2m+F0OlndQakpwIdrXKvVcHl5ifPzc1xeXqJWqwkfjVuGirF0HcjQXR25vgjFnQ4GA3E9vgK16gWYP1STt8xkMuEUr1gsxmqLfr+PYrGIy8tL5HI51Go19uxT+yLSz6X7Kcn0XS4XvF4vr3tZlhEOhxEOh3mPpF5/NM5KPn90r1w2Yi64nlJJ13oymaDRaODy8pITnjqdzo3FruFwiGq1imKxiFAohGazyQbsywIxyNi/2+3O+X6J/etHSCXsdDrZcDuZTLJNBcUxt1otnJ2d4e+//8aff/6J169f83lAcL/Q6/WwWCyQZRmBQADRaJSb9GpfPFov1Oy7vLzEu3fv8OrVKxwfH/OY/ffuLWjfSxMzFK7g9/sRi8VYKUfKObfbDbfbzfYo9P3ko0PqxmKxiGazubJ6gCjaLIGqbbFYDFtbW3MFG+Cj1JgibzOZDGq1mijafCWkZlpfX8fjx4/x9OlThMNhSJIESZLmFjEd3tLpNA4PD/H27VscHR3h4uJCjEX9JJAxLsVrUhqHyWTCeDzmLv3JyQlHSYtY2q/nJon1Mg8v9YOn2+1CURTkcjk2sHzx4gWOjo7m1ti3JLORCuPi4oJ9BOhwYrPZrnWeyTslFovh7OwMDofjTjwj7hPUXff7/QiFQpzSpNPp0Gw22Yzv+PgYV1dXKyto0WHFZDKx6icUCnF0PEFG1alUipsZdzGy9Tuh0WhYOUeFM6/XC5fLNRe5TpA3B8m/v7bY+rtCBZBerwdFUTjqmcZoyIuEis+kiCOZPjUhrq6uuKhWqVQ4InYxtY/+PuCD+phSSKh55XK55uKlHQ4HJxXR9yuKwkXT09NT5PN59Pt9oaxZAildSM0kSRK/n9QgbDabqNfraLfbbK5/E71eD7VajdMTb/JtBMCfK/r5zWYT3W5XmBCroBFpt9vNXiLr6+uIRqM8Bkjjwaenp/jrr7/wf//3fzg/Pxcj9fcQdbPWbrfD4/EgGAwiEonA7/dfCzIAPo7pl8tlpNNpHstXFAWj0YjXpFohp0ZtwUHodDro9Xr2s6KxUlJ06/V6hEIhVhDTz6XvW/Z3kV/c5eUljo+PkU6nOTxjFYiizQIUARgOh7G2tsbzwuS7QB8EihSvVCoshxJyvK+Dois9Hg9XXb1e79yiIFNpMoQ6OTnB4eEh+9j8Tp33nx0y76OHcCQSgdvthl6vR6/XQ7lcxtXVFTKZDLLZLGq1mvBduCUWzRCB6z421Ck4OjrCy5cv8fbtW6RSqRt9a76GyWSCVqvF6WHUtVhUCajVP1qtFlarlR/ov1sEPKUCqQ/n9F4Mh0OUSiWcn5+zseyyZK7bgDZbNAoSjUYRDAbZ343u0e12e24NF4tFoeq4ZahoY7fb2TCRDvBq2bbag6VaraJQKKBara7sM/IrMhgMeBw0FApxgihB91M68MuyzEUxkvZTSmIwGGSPDUrVUzOdTrmYRolGFDVOvm9WqxV2ux2SJF3zUiB1SCaTwfv373F4eIhMJsPx1IJ5KAWPzFDViYr0rNPr9ew/s1hkW4Su93g8htFohCRJsFgsS/2lJpMJOp0OarUayuUymxj/TqO/n4OUNuTZRU0+u93O76f6sJxKpZDJZL5rVEawWij8gsYIKfGQRnrVKc4A2OydDIEpBYwUO7QvoUI63ROpqUj/JaUkpRKTVQA1DEnt7fP5eK+lNrn+HGTrcHZ2hvfv3yOVSq108kYUbVTodDr2WohEImyEu3jDVsdOk8mceDB+GzqdjiPXyNtkETIhJaVNKpVCPp8Xps8/EVqtFjabDV6vl+fyw+Ewb4IVRUGlUkG5XEalUkGz2RQHvltE/TBcBkm8z87O8Pr1a7x584aToW5jjVHHn65zsVhEsVhEtVrl9KFlXg9kRNfv93+rTe1iJ1i9uQE+FNkajQabO9PoxSqg0Y9wOMzrdtFrbDKZoN1uo9FosJ+GWL+3zzKFwGJaFAA252y1WpxsSWpg8cz8POo9Bz23vF4vgsEg/7m6EE5qG7PZzMUys9k850VDyaZqfxz6WXTIAMCHfrq+6gKP2v+Evhf4cP9uNBq4urrC6ekpTk5OkMvloCiK2JsuQZ2sGI/H2RuIvIjMZjM8Hg9CoRD7uTWbzc/+XBrpcblccyEaakhBQCNVlUoFrVZLKBJVLKZ7ka8TrZnpdIpms4larYZ6vS7ev58A9aipetx02fOIRgip6EKG76PRiM8SNJFByW90TqcCOKWNqg3H7XY7nE4nF2zMZjO/BqvVCr/fz2b+y17/MqjhSWPhV1dXaDQaK1O0iqKNCrPZDL/fz+780WgUTqfz2geM5LKdTgf9fv+3i6K9LcivgaJKly0UOuzV63Xkcjmk02lORBAb0PsPySJJUUWGXrFYDMFgEFarFYPBgI1mK5UKGo3Gb3VAXzV031o2W0/djFwuh9PTU7x58wavXr3C0dHRrfuR0Bw/GRrThktRFFitVj7kqA8zVBC/q0jd+wKpEKkjRc0DtfKwUqmgUCigXq+v9PmjjlwllY3T6ZxrZvR6PbRaLTQaDZb7C24fOvRLkgSn0wm73T43Rrxo4pjP53F2dobz83OUSiX0+/0f+fJ/GqhoU6lU2D/I7Xazx4zT6eSvVW/m6UBCcnqLxQKPx3PNN2WZEbH67Y6PoQAAIABJREFU55EUX733nE6nS6NwaXy8XC4jk8ng9PQU5+fnKBaLYo90A3R/JSUHmXjT+y1JEgKBAGKxGEqlEqtibrqvaTQa9iAiddRN6hx6rvX7ffR6PT5DiOv0EY1Gw0obWZZht9thNBp5HQ0GAz5/0f7AYDCIfeM9hgoxw+EQ/X6fPZ0Gg8HcWlHvV/V6Pex2O/x+P3q9Hnw+Hxdw6PlHDX9KGaWiOcVu031YkiQeM6UmmF6v58Yg8KEGQD6qiyxbn6R4zmQyOD8/RzqdRqFQWKlHlSja/AetVgtZlhGPx7G3t4eDgwNsbW0hFAqxUeZ4PEalUuHxnGw2i0ajgV6vh/F4LGaHvwC1vJvcw2OxGGRZXlq0IdlvPp/H5eUlLi8vUSwWhQzyJ4EevmQoFwqFEIlEEAwG4XA4oNVqMRqN+CBPh3hRBP121N4zNFK07IFDPkKFQgFHR0f466+/8Pr1axwdHXEk8G2/rtFoxEVvRVF44zUajdhQU41er4csy1hbW0MikeAxnF/duJHuk2RA6nA4uGBFiQeFQgGVSmXlY7mkIiDpMBlJ0/2aikhUsCFfB8FqMBgMPB7lcrl4w6pmMpmg2Wzi6uoKx8fHrLwQHmFfznA45NhW6urq9XoMh0MEg0FWvVCxmQ4HFouFvQ9uakTRfZnUOmrVDnmedLvduXEbq9V67TBBhxNSMOZyOWQyGfazEdyM+oA3Ho/nOvOSJLGyyu/3s6caQdedRuEcDgeSySTW1tbg8/k+meKm1WrnCvKLSgHBx2eO3++fm3rQ6XRzB3oaJSQl3GAwmDuLiX3k/YDWWr/f51hsdYNHPYpEI9e0/wkEAhiNRnA4HBiNRrBYLFy0IRUW+Yyp1/RoNOJxqsUGmFqdSt8zGo24YH7TWpxOp1xoHQwGKJfL3OikZ+yqTbDFXeI/kBJgbW0Nm5ub2NraQiKRgM1mg0ajwXA45MPNixcv8ObNG1xeXs6NcYjN0OehWMz19XU8fPgQjx494ih1WqzAx4VEHeVSqYRqtYpmsymq6T8Ri4dP6lKqN6Dj8Rj9fh/9fh/D4fCXPozfJbShv2l8czQaIZfLXUteIC+hVaEeKx2Px7zxXbx/ajQaWCwWRCIR7O/vs1FcJpNBoVD4pT8nNINNpqR0CJhMJigUCri8vLwxMWoVaiR6PRR/TB5vwIfPUbfbRa/X402zYDWQWoPMiGnDqh7DoGcnRcJnMhn+vIhmx5dD9ySKnT06OuLkUK/Xy34KpBS22+1s1C1J0tKRtfF4zEXr4XA4Z6RJh45Op8NF2X6/D1mWsb6+jkQiwT9XbSJPRZ5OpwNFUThuVnAzdPiq1+soFosolUpwu91cnKNRCofDsVQFbjKZIMsyzGYzjEYjAoEA9vf3EY/HIcvy3PjbIiaTicdNG40GisUi8vk8pyMKwH52ZFhLSbL03DEajWzSH41G2TCa7nukZBLcH0ajEdrtNgwGAyqVCp/ner0eptPp3PkPAI8oajQa2Gw2rK2tYTKZcAGG1qnJZOLxekqDU49HUSHGaDTy1wIfFZJqD0UaxyLU51H6N5CIoFAoIJ1OcyhONpu9E4Xxb1+0oYemOlqOYsioYAMAzWaTXcr//PNPnJ6eolwuo91ui2LNV2AwGBAIBLC3t4fnz5/j4OAAoVAIVqv12ow3OYdns1nkcjlUq1X0ej3xfv9ELBpnulwu3gRpNBpMJhP0er05mbDgdlA/lNT/JUajEfL5PP7++2/87//+L1Kp1J3ERqsP/9ShplGARcNkSiza2NhAu91Gu91Gq9Xi8chfGerUm0wmPpS3223kcjkUCgX2G1qWGHSbUOylwWCYu14AuHvW6XTQ6XS4oC5Up6tB7fVAXfrFog3woTDabrdRqVR4g9loNMQYxjcwmUxQr9c5TjuVSnGhxul0cgqi2+1GPB7HbDbD2toaK7SBD2uSIsCz2SzK5TL6/T6vK/JdmM1maDQaODs7w9nZGfr9PhKJBCaTCbxe71xHmkbHyUuq0Wig0+n88vfF20BdHEun0zzWJMsyeyuSbxR15+12O1qtFrRaLbxeL8LhMNxuN1wuFyKRCHZ3dxGLxdgsV614VT/XyCPMaDRyEm0ul2MvDOEF9rFo43a7OTHNZDLx806v18PpdCIcDnPyFqkqyuUyJ6kpiiLCLO4JpIBRFyoLhQLK5TIcDgdsNttcM4jSZmm9kOpRq9XyOBwVu2l90RgpqcvVCVLqwsxNja1l+xb6OeQbls1m8f79exwfH+Po6IhjyO8qjOi3Ltqo58P9fj8bpEajUciyzBd6NBqhVCrh5OQEr169wsuXL5HP5zEcDsUh8yuhiune3h4ePXqE7e3tpbLfXq/H8bE0jiaM9X4+aHacNrfqmG8A3O0ql8uo1+vodDq/tILiLqDiB8lI7Xb7XLoMQYcQ8rxYdZeADpxkBkcPaovFwuqNZf8WKlxQV3PZ1/2KqA1K1YVsRVHQ7XbvbHNvMBggSRJkWZ5LsyEFKm2QKUVRHDpWB3X4A4EAx67T6IZ6w0ldTSra/A5FzlVB43/kcZPJZNj7gHxMnE4nPB4PKpUK2u02ms0mN6Om0ylarRaKxSIuLy9xdXWFUqmEXq/HxRr1KFW9Xud4W2pqJBKJa8oBdbrV2dkZ0uk0isWiSAj7AmjMtlAocHJMJBLB2toa3G43Pz9lWUY4HEYymUS324Xb7YZOp+OvDwQC8Hq97PcVCARgMpnYJ0NRFPbsIHUAFeHtdjsikQgSiQSy2Szy+Tz7gtFox++K+v0nHxP6fUKv18Pj8bBvE5l+U6JvsVhEuVxGq9XikWpSdNDPUh/2lz1vbzr4q8evbho/FyxnOByy/5bb7YbVauWkPQpdUN8Taf8HXPdto1+Lam21d9iy5NRl3ORjQ/dvSmE8OjrC33//jXfv3uHk5ASFQoELSnfBb120AcAqAHWsnNPpnIv4Hg6H7P2QzWZRKBSE0eI3QL5BgUAA4XCYfU0WzfWoGkvz+O/evcPx8THy+bx4339C9Ho9j3k4HA42zyR/jlqthlKpxBteUQj9PnQ6HUuLQ6EQS4uXmV+ORiP0er07OdDpdLo5c0HqUi4WldQPZkpJyuVy7GfVbrd/+UMJXZvBYMCjR/T+UJdJq9XeyYZRq9WyGWA4HGbPBjKEbDabqFarc+OrYhN7+2i1WjidTgQCAW4wURT14vgGfX7I+FsU0r4fOqDROBKNIimKAkmSUCqV0Gg0UKlUcH5+Dq/XC6vVyslq9JyjBsVgMOBOMXWPgQ9JiqlUCtlsFgaDAfF4nA+cakilcX5+LvZIXwkpn2q1GiwWC6sz1KoYMmCPxWIYDodwOp1oNBqszPf5fBwTTMVsGl9rNpv8zGq1WpAkidesx+NhbxZJkjh2PBaLoV6vYzabodls/tZFG/L9of0iMB8JTfsDo9EIWZYxnU5hMBjgdrvRarXQarVQKBSQy+V4/I3WHD0zaWSGnqPj8RiDwQCDwYDHyhf3olRAMBgMfDb8EoX47xKg8CWQcXoul4PRaESv10MqleKCjc/n472hukmkVuHQ6D9dJ/IIA3Bt5JQKP9Ts+9S1WDyLql/rxcUF0uk03r17h7dv3yKVSrHZ+13yWxdt1J1fWZYhyzLPTQLzaVH1/9/eeT61kW1df0ko5xwRSIDBjGc8z9S989z//9tTddPMGGOBck6t1Mr5/eB3b7eEcAQbofOronAALHeru8/Ze+212m10u13RSfwKqOpptVo5fYE2attkbcPhEJIkoVgsIpVKIZFIIJ/Po9PpiG7hDkKx7kajESaTCXq9nh+Ug8GAkxmazaZQ2jwAJB0OBoOc0nVf/KhGo2ETt8cultG9lgxtlaa29xm/jcdjVCoVvHv3Dn/99Rdub2/RbDaffWFvuVyujT50u10eK3M4HHA6nbBYLDxm+JgLQupg+nw+BAKBNZNN5WskXwGRWPOw0DOSkogCgQDC4TBCoRA8Hg93IYH1RCHaiIjxgMeBVDD0HKMI4kKhAKvVCqPRuLa5I9+Z4XCI8XiMxWKx1rmnDcN0OmVllF6v503iZtQ3KUWSySTevXuHZDIJSZKE599nQEVNagp0Oh02fiZoPCMcDsNkMuH4+Bjj8Xgt2Y+KChRJDQDD4RD1eh3v3r3D1dUVJEmC2+3GaDSCxWJZS6QlxU0gEMDR0REkScJwOOT3yD5DSouP+QNR0IXL5YJOp4PX6+XiS6PR4PCSXC7HSiYq3BgMBj5vm75QpKxTGhuTWoqubbrulUoPwedBahu619F5IPVZJBJBJBLB8fEx/H4/bDYbjwFTo1Fpq0C+jXSelCP4ZOJuMpl4BFWJsgio/DPg/fpTkiRks1keiYrH48hmsw+ervq57H3RxmAwwOl0IhAIwO/386wp8H7h3Ov1+MKv1+uQZVlsKr8QvV7PD6ZYLIZwOAyn07m22AQ+GNLSzGOhUEAmk0Emk0Gj0RDHfQehlAVarNADT6VSrcm7C4UCqtUqZFl+9hvyx4Y6TkdHRzg9PUUkEoHD4bhTtCGvEr1e/+jJFcrY6Gg0img0yp4Am94PSvkrJSUlEgm8e/cOpVJpL3w5SMWiTFWjxCZ6XpFakRb6yu/9HDmw8muUhR+l9Fuv1/MoDikj6WuWyyWrOXq93ncf29oXaISGCp5+v59TbfR6/Z0ONDU+hsOhMIZ+RKgYQ6kjKpUKjUaDZfmbRRbl6MWnlILz+ZyVyaT+pnUpjUmWSiWkUin2VSgWi99Vpv8coKZss9lErVZDrVZDKBSCyWQC8H7tSs0FaioCHxqRSn8v2vQ3Gg3E43H8+9//xr///W80m00Eg0HodDo21SX7hYODA9hsNoTDYS760ed998uk4st0OuU1I6E8LjqdDhqNBhaLhT1PaPyNnpEejweFQgHtdhvD4RDL5ZLNpqloMxgMeDxNWbih61vpzagceyRT3cFgwKoPpfJj8/UK3p9bSpqsVqt8bg0GA0KhEGKxGM7Ozvj4UhgDFW2Gw+FaAZysSqigajKZuKjqdrvhcrn4et1UnG97XymN/DOZDN6+fYurqyskEglkMhk0m80fVqjb66INzUE6HA5emNIoAfDe9LFQKPB8cbFYFEWbr8BgMMDn8+Hk5ATn5+eIRqN3OoQA2D+I4mMlSWIpsTjmuwkZ+tHiU7lJpwWOshPS6/XEJuMboXsaxWSHQiEe+byPxzaONRqN8Hq9iMViuLi4wIsXLxAKhdZS47YVG6ib3e1290ppp+zO9/t9jEYjzOdz9imKRCK4uLhAt9vFcrnkiN/ZbIbpdMobgvs6SABYPqwct6KFDZmE22w2XF5e4vj4GB6Ph5U9yp9HcbkfSwITfD3K4qrRaORuL20sCer40siaLMuiiPbIPNZ7XaVSwW63s8+Kcr00Ho+Ry+UQj8cRj8eRTqdRrVb35t740FC3n/wTrVYrjo6O2ASVfNWUbJ7z8XiMarWKSqWCbDaLv/76C//6179wfX3N6sNIJIJqtcohJ1RsoPEeUk6VSiUO5tjX+yile1HDgpoFwN21ChXQlL9frVZsXkyG0l6vdy2tiHyplEobaj70+30uelPRRqvVcvPRaDTyxr7ZbEKSJI6vJuUp3X+f+yj3l7Bp0E1qUEKpnhkOh+h2u/D5fGuG+5QMRgUbKuyRGTX5vnm9XoRCIRZnmEymtcbUtmuLnp+tVgv5fB75fB6pVApv377lwrgkST/0nO510Qb44P+g9FjQ6/VYLBaQZRnFYhHJZJLVHvsuWfxSqPLp8XhwfHyMWCyGYDAIi8Vyp+KpjICmi5Bi2wS7iVqt5lhUl8sFm80GjUbDixRJklCr1VCtVkVx7oE4ODiAxWLhMSQye/tRBr4qlQomkwlerxfRaBRnZ2dcBKDu8X3fR7PJlC61T5CShbp31O07ODhAOBxmmbder0cmk0G9Xker1cJgMOCNxn3dfvIMoMUMGWRqtVoYDAYuzlgsFpycnODw8HAt4Y/YlCPTvynSox6XbcUCZZoQdTG3eaEInj4WiwXhcBinp6eIRqPw+/0wGo2Yz+eo1WqsPEyn02g0GmIk6htYLpfodrvIZrOwWq3Q6XSYzWY4Pj6G2+3e+txRbvomkwkqlQoSiQQSiQRub285BrjZbAL4MEbabrfRbrfhcrn4Hksjr6QIIM+/fb6HUkGkWq2iUCjA4XDAbrd/tqksnR8anSI/MFLOkAcOmUIvFgv2kCOPP1LR0f2TPPlo7JEaSmRSS/YZjUYD2WwW2Wx26/13n4txn/P/nk6naDabrIKj64HWFnSuaH84n89ZfTOZTKDVahEIBBCNRqFSqeB0Ormg87HEKFKokrrm5uYGmUwG2WwW6XQa5XIZsiz/8OfpXhdtDg4O1lIxaHMDvE9faDabyOVyXLQRCQxfDpm20VhELBZDIBBYi1Mn5vM5GydS1Zokb4LdxGQyccGGZKXA+xtzt9uFJEm82RQFm4eBRtLI8Ndms91RtREPfW3RoorM34D3EvNQKIRoNIqTkxOcnJwgFAqxaeO2BykpOEgpQEWIfVrwkDx8MBiw2oZ8LijhhOKfXS4XstksyuUyut0uF2U2NxzU3aJiKkmI7XY7TCYTF3GocGMymeDz+RAOh9l8eJsiStyjHw8qXtI1RbGlm/dLWnTSqAdJ9n/0IlPwZeh0OgSDQbx48QKXl5c4OzvjVCIyxUylUri9vUU+n2e1neDroHGzfD6/dm+jAIVNRZvy+/r9Pmq1GpLJJP7880+8ffsWiUQCqVQKrVYLy+USBwcHbLVA5rg2m41T+QBwwiY1j51OJ4xGI/r9/nc7Dk+JxWKBdrvNijKj0Yjj4+OtpuufgvxSnE7n2sZd6Sel9NRUfmwmEikbSFQ8GI/HXCTv9/solUqwWCyYz+c8bqVkX9YvXwtdj7PZDK1Wi0eaNpO+lOeHFDKz2QwajQaTyYT9qD61r1D615BH2NXVFa6urpDNZlGpVFCr1Z6MampvizZUgSP5KfkrKB38K5UKMpkMkskk8vn8XqSWPBR0g3O5XIhEIjg5OcHp6SmOj4/h8/nWZgvpAmy32yiXy+xjQ5VNsZnfLejmSmNxwWAQfr+fzeIAsMqGDIhHo9EPftXPB9qwm81mWCwWmEwmXmQ8NqRcpIIRzY1Ho1G8fv0aL1++ZI8d5WKJVEBkDklx5Ol0mg0E98HLRslsNuPkrHw+D6vViuVyCbfbzakjBoNhzeukWCyi1+uxwvFjShuSh1Nqg7JoQzHs5EdlNpvXDIgJ8gJot9totVqQZVkYET8wSrWisgi7WZCbTqdot9solUrIZrMoFovodDpi3HSHUKlUcLlciEajuLy8xKtXr3B2dsaKj/F4jGaziVKphGKxiGq1isFgIM7xNzIYDDCdTjEcDrFardYUnoeHh7xuUUazd7tdlEol9rz473//i3g8jlwuh16vtzYGMhgMWI2jNJA/PDzk5ERqbh4fH6NSqfC9n8Ze9+meOp/P0Wq1kEwmWfnUaDQQiUQQDAY5MIYKKJvHhgpv9DX3Na2+FXqmUorUcDiE3+8HAB5tJvWO4PMgk/CvHeulc6LVarkxZTQatxpaU3FuPB6jVCohHo/j+voaf/31F66vr3kP+pRGjPeyaEPjA+FwGEdHRzg8PITP5+OqN1XFSQWgjAMUfBraNCqPcSQSQSAQ2GpATIajkiQhn8/j9vYWNzc3yOVyaLfbYkGyY2g0GhiNRrhcLi6Iejwejp2ezWaQZRntdhuyLGM8Hotr64GhLtI2X5OH+vnA9q4RdTiOj485EvX4+JhNkW02271eK5PJBO12G81mE/l8Hm/evEEymdzL0dTpdIpWq4VcLseyfRqT0uv1LKs3GAwcBd1oNDAcDlmFs+04UzeZ5OEk+aafSR/kd0Nmm9si4+l80SaSTJHF9fxw0HghzemTYnHzfMxmM3S7XVQqFTZ273a74vm5A9B1ajQa4ff7cXR0hJOTE0SjUW5yAetRt9RZ3rdi9mOwXC7Zy6JYLPL9drVaQZZlvs8ajUYYDAbM53M0Gg32wSHPi1KpdMdAmJQDlUqFPf4MBgMXzf1+P6+Z3W43IpEIGo0GK6jo1/t0jheLBbrdLorFIh+/YrGISCSCs7MzRCIR+Hw+OBwOANuVnt9D/akcw6IGilqt5kQyWt9Wq9W9LL59b8gL7PDwkPedFDBEacVK6H1Wq9V4rDEej7OH7VNUMe5d0Yaip4PBIEv1Kc1IGdlH5lIUY/rUTtxThqIS/X4/j0SFQqE7BRsagaAZRor4jsfjSCQSKJVKHI0p2B00Gg1sNhsCgQB3Rujcr1YrjMfjtRE4iuoTPBxk8EYz2du6UY+BTqfj5KpXr14hGo1y0pHX693qraNUgAyHQ1SrVaTTaY5MJT+xffNtmM/naLfb0Gg0XEShc0kJYaSGCQQCsNvtiEQibJz4KQ8guuboa6nIt/nxsQLdZDLhe3exWESr1RJGxA8MJaN4vV74/f61ArgSMiCu1WoolUqo1WrC2H1H0Gg0vGmnyNtwOAy/38+bDWWEO4C1a5RGBQTfxmKxQKfTQT6fB/ChiRAMBtmTT6/XYzKZoFqtcgQwmZTe19yl++RisWD1os1mg8PhYGNxSlg8PDzk9REZs+5b03ixWLCCjM5BOp1GMBhErVbD69evsVqtYDQaOX6b1pHKkafvDaWBBYNBxGIx9Ho9jEYjqNVq1Ot1dLtdsZ95JGhNdHp6itevX+Pnn3/G2dkZwuEwK7s39xmTyQT1eh2JRILVNTRm/lSvub0r2phMJoRCIZyfn+OXX37BTz/9hGg0yid1NBrxiE4+n0e9XsdgMPjRL3unIKnn0dERLi8vOX3E6XSuSdRINkreQdfX17i6usLNzQ0KhcJajK1gd6Cijc/n48hFh8PBnSulS/9oNGL1gOBhUM5nU/Tkfcf3axc2277PaDTi8PAQJycnuLi4YGl/MBhcm0VXLrAIMt3t9/uoVCqIx+P4448/cH19jUajwQaC+wTNxFN3jhI1xuMxRqMRH1e73c4qGaW65j7TPVrQUree0hdoc09ycuoeKg2NN99H5E1Vq9XQ6XSe5CJn16HNPKXBBYNBNnQnlH42pVIJhUIBlUoF/X5fbBJ2AJ1OB6fTyd5f0WgUh4eHrCQg3wZ6bg6HQxHU8AiQT02pVGJ/RUmScHh4CL/fz9Hr4/GYvWzIsLTdbt97LuiZ12w22fCYvP6sVisrcBwOBz8Le70eOp0OGo0GarXadz4SPxZ6PtHIWqPRgFarRS6XQ7fbXTOhtdvtbExLPmw03qtsVm2qjz/X1Ji+l17Xx/4e+JCWS+lG5Ec3HA7R6/XE/fgRMBgMXCh79eoVfvvtN7x8+RLRaBROp/PeBtZgMECpVMK7d+/wxx9/4ObmBvV6/Uk3O/aqaKNWq+FwOHB0dISXL1/i559/xsXFBUKhEAwGA2azGSRJQjabRSKRQDabFebDX4FarYbNZuPjTMfYarXeiYuVZRm5XA5v3rzBH3/8gXg8jlKpJGZAdxi1Wg2dTscdJLPZzHF9SnWV0p1fdAl/DMoCz9dCHcKjoyOcn58jFotx4lAwGGQ/BmWs96Z8nD7T6Fy1WkUul0OxWNy7sShiuVzy4pSOGW0kms0mAoEAvF4vvF4vbDbb2kgTqV02ryuliSKlDLXbbfR6PYzHY5Z62+12eDweHscxGo1blTeUoCGKA4+DSqWC0WjksYnj42M28VYq1mhUTZZl3uSJItpuQKOKVqsVPp8PgUAAPp8PTqcTOp1u7donBXir1WIlhrjuHpb5fM6Fgclkwsfd7XbDYrFAo9Hw6Gq5XEahUPjsa225XKLT6aBWq6FYLLKayuFwwGQyQafTwePxsJLH7XbDaDTuTVNrW3FksViw0ex4POZnGBXOzGYzjwmSn57dbmc14mKxYK89i8UCq9XK5sSkMFWuST52rD91HqgwROmdgUAAfr8fpVIJ5XJ5b87j90Sj0cDj8SAWi+Hy8hI///wzXr58iaOjIy7YbFNe0T2V0r6SySRyuRyvg54qe1O0ocWPx+PhuUiSThkMBgBgaX4mk0E6nUapVHqyEqmnDN20AoEAjo+PEYlEeNZTCXU18vk8rq+v8fbtW+Tz+TUTN8Fuohy1UBpOi9GJ7899x1vpvP8t9zi73Y6Liwv88ssvePHiBXw+H7xeL3cQ7xvP2nyQkvyfEpMosnjfIYUNKY46nQ6q1Sr7BXm9Xtjtdu4uarXatXQFgszhNRoNmxzXajVUq1W0Wi32YrDZbAiHw4jFYjg7O0MsFoPb7f5obLy4rh8HpZ+N3+9HMBiE3W6/YzBNBT4qoIl1y26h0WhgNptht9vhcDjYrBb4UBztdDprRRsR0vB4KIug5HFZqVTYAHw+n3Pc85eOvJAqrtVqodFooN1u80ZRrVazUtlms8FsNrNiZB/41DOEUqWSySRkWUYikYBWq2UVrtVqhcfjgdvtZu+82WzGxbBgMMij2nRM7zu2n1Ng+djr1el0XCgyGAxrykjBw6DVamG32xEKhRCLxfDixQv2PFJangDr602lcrnT6UCSJEiStBNigb14F+l0OhiNRvh8Pl6I0omlKja5lefzeSSTSaRSKZTL5TumYoJPo+wOBoPBOwUbZbedDNooVv0pGa59TVX8qbz2HwktPGjEQq/XrxkpzmYzHskgpY3g8bjvfUxdITKa3fY9m5+BDw884L3p8MnJCX777Tf8/vvviMVi3DEkY3eK7KbCjXI0irwalCqBRqOBTqeDwWAgrqf/D5nMkly/VCqxJwJ5LZCZMF1r2xRspMSZzWZoNpsol8uoVCq8cQDen9NoNMqRtUajEVqtFhqNZs3Mj+TllKiyT3Hs3wutVgubzQa3283qC2XnkD5o5FSWZfT7/b1Vp+0qpLTxeDzweDw8hgN88LZSjr2JxMXHhzZ10+kUnU6Hn2HKvyePoS+579G6V5IklMtlVKslPwGRAAAgAElEQVRV9syhhD5Ki6PxV6PRKM43Phy7yWSCWq3G65bFYsHNYlKIOhwOHrOi0W1qCOt0OhwcHKwVU5T3VPq3lL8mtq2JlL+n7yNzaYPBwP+eUNo8HHq9Hi6Xi+1OLi8vcXFxgVgsBq/Xy/fPTWgN2u12Ua1WUavV0Gg00O/3v/P/4OvYi6INGTWenZ3h9evXePXqFU5OTmC32wF8mJ+s1+vI5/PIZDLIZrOo1+vCmf8rUKlU0Ol0sFgs3BW8T542mUzQ6XRQr9chy/KTONa0OaGCg3KzuQk9xEm+SZ4TT+H/8aOg7rDL5YLX64XL5WKpKm3OW60WJEmCLMuYTCZ7fbweGuXstkajWSuYbH4dvdf1ej0/tEhKTF0i2rTTNUwjMQAQCoXw+vVr/P3vf8fr168RCoWgVquxXC6h1Wqh1Wp5LE65CNpc/NKs/19//bWmuBO8R3nvmc/n3Kk1GAzckVUWSO9TtSmLNu12m80RlV9H9y+r1Qq/34/Dw0P2Xtg2bqXX61mF81TnwHcNKohRnLvb7WYzd+XCn7wcKHGNRt32zf9p1yED00AggHA4zGmmy+USsiyjVCohlUohmUyiUCiIVM3vAD3rHlrNRCpHCkWhEVe3241QKMTrZ5fLxSb+fr8fw+FQrJUA9rLZVpimtWW9XofVauW0NbPZzPsLSralQsqm9w3dU2kcazQaYTKZsGKYnnekbKWxZCU08qjT6dhv7j6VquDLUVqdnJ+f49dff8Uvv/yCk5MT+P3+tbHSTcbjMbrdLvL5POLxONLpNOr1+s40OvaiaKPVauH3+3F+fo5Xr17h9PSUfRaIfr/PCx9JktDpdMTC5zug9Dh5Kg8jnU7HYwdkoEsP723jBjRfK0kSarUaptPpXsuWSWnlcrk47YRSw5RFulqthna7jdFo9GTO/XNAqX5QSqu3dYa0Wi0MBgNMJhMn/yiNT4+Ojtj4VNmJorElp9PJ8bTKr5vP51ws2lQGKDtV9GeNRgNXV1f4v//7P7x58wbValWMRn2CxWKB4XDIn2nxqCySbULng0zg7xtFpSL0cDjkzcK2e5pGo4HJZGJPBlmWH+X/um9QHLvD4eCEGaXUm6Bz3+l0eGRGbOx2CzpXykaHw+Hg4qosy6hUKshms8jlcjwmKc7xbkLJSIvFAhaLBcFgkP3fnE4nTCYTq0a8Xi+P9MiyzIpIoU7eDqkOAWA0GvHewmw2w2g0wul0sm+U3W6HyWS68/20qW+1WqjVarxOnUwmrO4IBoMIBAJrRtLb1lfK9Y/g4dBqtbz2fPnyJe/rlXuN+5hMJiiXy4jH47i+vmZz6125pp590WbTfPj8/HzNx4YWr7SJVHb/BV8PjcFsM3FW3sBo0U9GmtPp9LNucJuGZZ/rqfApx3iKjYtEIpzUYTAYOD55s2hDm+Jer4d8Ps/yzX1OHDs4OFiTqZIBtVJZRWMwYhHyuGyT9RKUWEF+GZTQ5HA4cHx8jMvLS/zyyy84Pz+Hx+PhbhSNNK1WK2i1WjacNplMa1LjbQkN26696XSKSqWCq6sr/Pvf/0YulxMKxy+AEmQmk8lnx3xTF3nbMVapVGwcTp3K+8YY6T1ksVhgsVgwGAyEsfg3Qgo4s9m8Nh6xrXNIm/p6vY56vY5Op/PZz1DB04HOt9PpZANi4P06ioo2uVwOhUIBzWZThGPsMMqRxkajgWKxiFwuB7/fD6fTiXA4DK1WC6PRCK/Xi+PjY1SrVbZqEOEon2Y2m2GxWPCzUaVSodvtcmNVkiS43W4eoQI+PBspuatWq7G6jdLEzGYzDg8PMRqNWKVDe8ltI+TK1yCeid8OFcHItP34+Bjn5+d48eIFQqEQK2w2oWO/WCzQarWQyWRwdXWFd+/eoVgs7lRS8bMt2pBXg9vtxsXFBX766SdcXl4iGo3CYrEAAJu7VatVJBIJJBIJ5PN5NJtNobJ5AO4rpNDGT6VSwWw2IxgM4vz8HPP5HP1+n0c66Ga7rdBCf0YGjMro2m2KGPJYoQ+KHlduRFarFYxGI0KhEE5OThCLxRAKhWA0GteKNkqlAG1uOp0Oj9tNp1Pk8/m97HiqVCpYLBY4nU6W9VMXglRVw+EQ3W6XfUvEtfaw0PgSHWPlWIVSoqvRaOB0OhGLxdDv9+F2uzGdTmGz2RCNRvHq1Sv8+uuvuLi44HsmcNdAeNuMN6k9lNz3MG2328jn80gkEigUCuL98AXQNfWQ0PuEfjYlc2wr2ih9bUh1KEyJvx2KrrXZbLBarZzepWS1ep9+UavVODyhUqlw4UywG2i1Wlb2ejwe2Gw2/rttRRuRCvY8WK1W6HQ6KBaLcDqdsNvtsFqt0Ol08Pl8MJlMCIfDrHaktS39WnA/m89E8iWq1WpwOByc0Ob3++98Lz2/qBHS6/XQbDbR6/U4mWo8Hn/Sy4g8j8j3SFyz3w4VMz0eD8LhMKLRKO/TqHi2CZ3P+XyORqOBeDyOv/76C2/evMHt7S3v93dlzfIsizZqtRp2ux1erxdnZ2f429/+hp9++gnhcJjNMQGwGVGhUMDNzQ1ub29RLBbZMV7w9SgX8vdB0eCnp6eYzWYIhUIc6fexCD762TSGQdG1nU6HE2eU548Mx8i4czMOULnJoNGQQCCAYDAIr9cLg8HAVXOSOpL0kYzM2u023zRojKDRaPBowb5wcHAAq9XKm43NG+nmuRQbvIdnsVig1+uhXq+jXC5zEW0z/Uej0cDr9eLi4oLHo2azGYxGI/x+P2Kx2L3Jb1/LZjeKok3r9Tra7fadgs22CFDB46P0xPnYNUpKHNpYCIXUw6BM+iIT6M1753K5RL/fR7VaRTqd5vAEkb64O5ASPBAIcAqc0j+M7pFkQN7tdoWXzTNCGYDicDjg8Xjgcrl43NTr9UKlUvF7oNlsolQqodPp/OiXvlOQsol83CRJQr/fXwtFILRaLUd201jadDqFLMuwWq1ro1Fms3mrnw01nsX65eFQKlCdTidfK2Taft+xpvVwo9FAIpHAf//7Xx6LkiRp5/Znz7Joc3BwAI/Hg8vLS/z222/47bffcHp6escUlwz8CoUCkskkGxLt2kl8iigLG0pIqUKfHQ4Hzs7O4HK5IMsye2F86meTd8NkMlmbPW02m+zzQP8GFRK8Xi/8fj/8fj/PjFMVnCC5v9lshsViYS8BuiEoZ1TJN4TkejQ/Ox6P2dSqXq8/Kb+ex4KODxUIqGCjfHBtbkRoM7IvcZbfC0oaKpfLyOfzPHOt1+vXfDFIiajRaOD3+7l7pIyfpSL3Q75/6WdNp1PUajUUi0W0Wi0uim6q3wTfF6W6cdOXaBPq/Ha7XZG0+AjcN1pI42002l0oFJDP5/l5I5pOTxsyNDWbzYhEIjg8PITH42E/EyVkukpFUcHzgYoJ9XoduVwOoVCI3w/0XvB4PDg9PUW1WkUmk4HFYrnznBR8GqX/V6fT4X2CElLPu1wuNvan3/d6Pb5eSd2h3B9s8+tTKm3Es/HboYIajZGazeZPGjzPZjNUq1Xc3Nzgjz/+wJs3b5DJZLhJuWs8y6INyQsvLy/x+++/45dffoHb7V67uCgtKpfL8WjUrhkSPWU+5mkDfCjekBdGOBz+7LlP5WaCnPgrlQrK5TJHtylvxhqNBjabDX6/H+FwGIFAgDeyy+Xyzvmmn6/8/LHXAbxX6FA0q9/vh9frRavVQrvd/txDttOQoS1JTl0u1x1lB42y0bwxHXvxMHtYZrMZWq0WcrkcHA4HX2N2u31N+XRwcACHwwGbzcbnQZnupDStvY9to1H3KTPoa+bzOftwZDIZ3NzcoFKpYDKZCC+OJ8SmL9F9RRuKm97FBdBThIrber0eRqMRJpOJFZ2byVGyLKPRaKBUKqFare61l9ouQSrjYDCIFy9e4OzsDKFQCBaLZe0cj0Yj9Pt9DAYDYT78TCFvG51Ox2vUUCgEm83GTUG/34+TkxMeg2w0GpyGJN4Tnwf5l7bbbUiShFarhV6vt9YoJp9KKqiSV5vX60W/34fRaOQ1LimQlcefxqro3yHvxm63u5d2CQ8JBZx4vV4ubLrdbuh0unttOFarFbrdLrLZLP7880/885//RDweR6vVwmg02sm9/rMs2lB8InmTBIPBtc3jeDxGo9FAMpnEu3fvOEax0+nsderPQ0EV5tFoxPP1dPw3N3k0QvW1mzWdTscLW5vNBp/Px5G1Sr8FMsb1eDxbjcPu+38omc/nmEwm7PGwWq04ym84HEKWZVYrfM7Pfy6oVCpOOvH7/QgGg3C73TyCBnzoDNMoW7vdRrfbxXA43Kl50l1gPp+j3W5Dp9PBbrfD5/MhGAzeubdtdijui0ikc7cNZXdp29/RZ4rOHAwGaDabKJfLqFarKBaLSCQSKBaL6PV6O/kQ3Rc+9t4Q1/DDstlRJK8LJZPJBP1+H51OB+12e6fMFPcdKtpEIpE1I00q2qxWK8xmM04z/dT5pbWO2MTvFrRWpjHHbDaLYDDIpsSBQIDVH+FwGKenp7xXKZVKopj3BZDqpdPpQJIkNBoNSJKEwWCwdm9VqkzNZjMCgQAMBgNGoxGvqShcY9vaZzKZoNFoIJvNIpFIIJlM8tiqWN98G3q9Hn6/H2dnZ3jx4gXC4fBHx/cnkwnq9Tp7Jt7e3qJQKOy0YvFZFm1UKhUbFlG3ny6u5XLJST/xeByJRAKlUgmyLIuCzQNBC47BYMDzoJ9bKPka1Go1TCYT3G43TCYTj1nQB3Utaf70c1+DchNLRmZknjsejzGbzXjUZzQaQZIkVCoVVKvVe+WXzxWtVgur1crmw3a7nc1vCZoLbrVakCSJR9nEguNhobGJZrPJXjE0rkd8yXX4sfOzzW9K+X0qlYqLdaVSCfl8Hul0GrlcDq1WC91uF7Vajf2fxHvhafEpTxvg04l8gi9n835qs9nW7qfKQuh0OhVeQjsGbQj9fj+Ojo54PIrWSVR4p3ujLMsfVbIpVZFCvbqbjEYjNJtNtmtwuVwwGo2w2+1QqVSw2Ww4PDzE6ekpWq0WlsslyuUyNykFn8d4PEav1+N1aKvVgsVi4dHxzREnvV7P4/4ajQYGg2HtmafcJyh9xlKpFK6vrxGPx4VX6gOwWq1wcHAAt9uNaDSKk5MTeL3erXs62oN2Op21ZOhOp7PTBRvgGRZtyITY4XDAbDavVVDJ1K1SqSCRSODt27dIJBKo1Wp3NjWCr4dSLSRJQrFYhNfrhc/n49Smx/j3Dg4OYDabYTKZAKyPOCnHqejrlZ83f03fD7y/CdP/pVKpoFarodvtcuFGrVZDq9ViOp1ypCAZq/Z6vb1w+VcqbXw+H3w+H5xOJz/cSDJKx6der6PRaAjDzEdisVjw/Yw6tSQFJl+v+9i8Nj53XFF5vShHIymBoVQq4d27d7i6usLbt2+Ry+W4qDkajXjzKRY1u8c27zLB10MSfZvNBo/Hwwa1VLQhddN4PMZkMuFFqCic7Q4k9Xe5XAgEAvD7/bDZbOyz1+v1+Fl5X9Gd/OF0Oh00Gs1akua+NIueE6QCKRQKsFqtXCg4OzuDzWZjG4GLiwtWdQ8GA2Hp8IUojWkLhQICgQB0Oh2cTufWlD5SOpHZLf29cm1E116/30exWOQpjuvraySTSS7YiPXu10Mpe+FwGMfHx/D7/Xf29/QMHI/HnMyWzWZRLBbRbDYxGo1+1Mt/MJ5N0Ybmvx0OBy4vL3FxcbGWFkUyxFKphJubG1xdXeH6+hrpdBrdbncvNtffC4pST6fTsNlsWK1WODo6gsfjgdPphE6nY6niJsrEKNoMkOEvmQ9vQsbEyoIQnW8yAFN2oCiKbzabrX3Q19DPU6lUGI1GaLVaaDQaqFQqqNfrPNYzGo34a8nkrNfrodvtotVqcZz1c79Rk9LJ4/Hg8PAQkUgEPp9vTbY4GAxQq9X4GLbb7Z2veD9VSBlBs/LFYhHpdJqTKKiwST5ESjNoZdfoY7He9xmkzudzXkiSpL/X6yGXy3HB5ubmBo1Gg681Iel/mnxJwU4UDB4OKoLb7XYe6bXZbGsJGVQUVXqEiWtod6DCnNVq5bQg6vQrDVPb7TYGgwFWqxWMRiPG4zFvMO12O4xGIxdsyEeD/BoEu8VyuUSn00E+n4darYbRaOTijdFohE6nQygU4uIARViXy2XhJ/YFLBYLyLKMYrHIhbH5fI6joyP4/X5WNm36+ymhfQTtM5QNyVQqhT/++ANXV1dIpVLodDri3vyVKCclIpEIXr9+zXt7eh5uHlu6jnK5HMd7397eolqtPouQoWdRtFGpVDCbzSwd/PXXX/Hrr78iEomw3FTpIB2Px5FKpVAqlXbWQfops1wu0W63kUwmeRMnSRKOjo54PpSKJkqUUnxlyhD51dhsNgAf7yjSBTwej7m4QsUb6j4tl0s2z5RlGbIso9/vs8x8sVjwSB09IClSnMaeJpMJF/rIjIy6XKPRCMPhcM3f5jlDRRvqGlJ8qdFoBPDBMLPZbKLZbPLInHiQPS6r1Qr9fp+VhUajEcPhkBf7LpcLHo8HVqsVwIeCjdIfQdnBu8+UezNqkUahstksGo0Gms0m8vk8UqnUWlKU8nsETwe6B1Nx+770CxpDpnvlfZ5Igi+DNvSU4EYpbrSpVz4nlQ0JwW6xmc5G0FpiNBrxGLZKpYLFYoFer4fX68Xx8TECgQB74NB9PpvNsnJRsHuMx2M0m01oNBp4PB7EYrE1LxSDwYBgMIhQKASv17s1clrwaYbDISqVCu8z6Bo0GAxr99ptTSpCuY8olUrIZDIcbPPu3Tvk83lRsPlGtFotfD4fjo6O8PPPP+N///d/WXm2DVKhyrKMfD6P6+trXF1dIZPJoN1uP4v92LO42g8ODuB0OnF6eoq//e1v+Pvf/47Ly0v4fD5oNBqMx2PUajXc3t7i6uoKNzc3KBaL6HQ6omDzCNAozGg0gizL6PV66HQ63H03Go33Fm2oeq3RaDhujwxuNRoNLBYLgLumqcrfDwYDVCoVVCoVVlHN5/M1Q+R+v8+eH7VaDa1Wi4sxtEiiGXHqalKhhjYx9CBVbnAXiwVvdDbjxJ8r9LCz2+1wuVxwuVwwm838oCO1Ur1eZ+O3xWIhNnnfgel0CkmSkEwmsVgs0G634Xa74XQ6EYlEoFar2cz7a8+FUpY6nU7RarWQz+fx9u1bZLNZVKtVlMtl9jASCqvdQLmpvE9NI67fh4fUmzqdjmNnN1Wk4rjvPsq1xWw24yaHEnq22mw2LBYLGAwGxGIxXF5eIhKJwGw2Yz6fo16vQ6/XQ5ZllMtl8WzdUWgcn9amyvE4akCbzWZ4PB64XC7YbDYYDAb0er0f/Mp3i+l0imazyWt9utdS0iatXyloZPNaIp++druNer3OhZrb21skk0kUi0X0+32xv/xGjEYjotEofv/9d/zjH//Azz//fGcsahNSmGezWcTjcdze3qLRaDybdedOF21oIWm1WnnW83/+53/w+vVr+Hw+VkBQ1e3m5gbX19dsPixudI8DmUDNZjMMh0MMBgMMh0P0+33U63Uu2igvImXXcLVaQavVQq/Xw2Qywel0IhQKodPpsHyR4rrJdJh+T4uWfD6PYrGIdrvNM97L5ZJj32mmVbmhJGXMtvSnj/ngbFsg7dOCSdkZttlsa2NR5KRPBrT5fJ4flvt0jH4UlEBCCRWNRgNOpxNerxedTgfj8Rjj8RihUIgXKlRQUyprqINBXX1ld5/UFuPxGMViEZlMBre3t3j79i2SySSq1Sp6vd5eFDCfA6SgoZh4u92+ZtQIfDDCbbVa6Pf7wgj3AfnUuBlJ8mk8ihoS4vjvFrTmUTaAALBPHo37h0IhaDQajEYjWK1WxGIxnJ+fc1Oy1+thMpncGXUV7CZKhWwmk0EoFILb7cbFxQVMJhM0Gg28Xi/C4TDC4TACgQA/x8V9+POg/cd4POZ9wcHBAdRqNcbjMRwOBxdxLBYLj+JQgmy322XvykqlsrbeIXNowbdB5tvRaBS//fYb/vGPf/C9cBPac47HY5RKJaRSKS6g1ev1Z1OwAXa8aHNwcACj0Qifz4fDw0McHR0hHA7D7XbzhoO8HZrNJkqlEgqFAqrVKrrd7rM6kU+BzTEJ+jXNFy4WCzSbTej1+rXiiPJrafFycHDA1W+bzQav1wuv18tJGuQjQ6NM9HtZllGv1/mGSqkLJO8nKT/NjFOK0bfcZMVD8v35MhgMsFgs3BFarVbo9XqoVCpIp9O4vb3lkRnxUPs+kCk4LTZ6vR5HCdPInyRJiEaj8Pv9MBqNHDdsMpnWNgBkGkzqOVKm6XQ66PV6DIdDFAoFpFIppNNplEolNu4W18juQCapXq+Xn6vBYJCL5TS+Qc/TZrP5LGbFnwqbvmub6xQqrE4mE1aGivGo3YO8+vR6/VpBVKPRwGq1wuv1YrVaweFwsGm7wWDgRDG1Wo1+v49Wq4Vqtcr3WtEQ2X0WiwVarRZSqdRaAu7FxQUX8yKRCGKxGIrFIqeXiubIl0HHOZPJcCNCkiR4vV44nU74fD643W5W+JPVQ7FYRKFQ4NjwfD6PTCZzb8FGKN++nIODA9jtdni9XgSDQXg8HvYa3TZlMRqNUK1WcXt7i3g8jkwm86wUNsROF220Wi0cDgcCgQCCwSBHPis7VdTJUHqY7FMU8/dEOSax+ec0siTLMi/8ty00leZfVIyhuG760Ov1rKIiM1NS2pCjfq/XQ7/fZ5UNdbWomDedTvlrhQn1t0HHdtPXgkZlyuUycrkcstksSqUSut2uuP6+I9SFGAwGbJpHaVIUK1utVnF8fMwbglAotJbERtcazW9XKhVIkoRut8vpCrPZjFPWKpUK+v2+OM87CBVtfD4fjo+PEY1G4fP5eLR0OByiVqshmUwinU6jXq+Los0DM5/PMRqN0O/32dBer9ev/b0y8lsUbXYPtVrNY3BKDw21Wg2LxYKDgwM4HA4esSCFFaWgkoKVfDQSiQQqlYrws3kmjEYjFItFHrnXarUwm804OTmBXq+H3+9HNBrlOOnxeIx+v/+jX/bOMZ/PWf0tyzJqtRpCoRCCwSAikQjC4TDsdjsAQJIkVhJns1kOW+h0Omg2m/fuJUTB5vOhfQQp98lj6FNhB4PBAMViETc3N0gmk6jVas9yXbKzRRu1Wg2r1YpQKISTkxPEYjHuFG+eXIpjGw6HGA6HbIIqqp8Pz33HczKZoNVqodPpbFXkbEOZTELSRaW/wrZ0GxrbUI5yKF+b8t9WJkoJvh5aRPZ6PTSbTVQqFZhMJsiyjHQ6jVQqhVQqhXw+v2ZCK/h+kDqCurDkMSVJEsrlMqrVKqrVKkKhEA4PD/nrSF1BY1bZbBapVArZbBblchmSJGG5XPKGcjAYQJbltdQTjUYjZrt3CCrCOZ1OBAIBuFyuO+OnmUyG/eGq1SpGo5G4jz4Q1DVst9uoVCool8uwWq3weDzQarWYTqfcmBgMBiLieUch9SOtS5WmxAcHB6x2VK536BkrSRISiQSHaqTTaeGj8cyYTqecVjoajWCxWBAIBDiF1e12IxqNolarcUgGjUILPh9qKg+HQ/aoqVQqiEQirEZ2uVxYrVaoVquIx+O4vr5GPp/HcDhcU0WK4vm3Q1YLPp+PJ2eUDYtNaG1br9eRTCbZAuU5qmyAHS7aUKU5Fovh5cuXOD8/Rzgchs1m2xrPNpvNWE4sOlPfB2VhRSRcPF9IgVEoFHB1dYVOpwOdTsd/ppQqis3Fj2GbeSlt+jqdDhdaSCXTaDRQKpXgcrmg1WpZNpzP55HNZnnMtNVqYT6fQ6fTQa1W832WZuzFQmY30Wg0MBqNLM2fz+eQJAnpdBrpdBrJZBI3NzccpSnGHR8Oim+uVqtIpVKwWq3QarWYz+ewWq2YTCa8SSM1qbjGdgvlOc7lcrDZbPD5fDCZTBzjTUUdaiyNRiPeUJJH483NDfL5PMrlMtrttiicPiNozTyfz5HL5ZBKpVAoFHB5eQmHwwGTyYRIJIJWq4Vms4lqtYpSqSSUVl8BrY9GoxEqlQp7cfZ6PUiSBLvdjtVqxYWBVCqFbrd778/73Ma04C4GgwF+vx+np6e4uLjA8fExnE7nvV42y+USjUYDmUwGiUQCt7e3yOVy6Pf7z/K5uJNFG7VazQ+5o6MjnJyc4OjoCB6PBwaDYU1ps5mAQX8mEAgeBmXE+2g0wu3tLQ4ODjg1ivyFxBja04M2D9SV6Ha7qNVqKBaLcDqdLNOfzWZrXd5ms4lut8tJYKSE20xQE8Xa3YW8U2hEJ5lMstkijWWUy2X0ej1xbT8gynFirVbLCVJqtRper5e920hlQ9eZYHeghM18Pg+HwwGdTofZbAa/38/Kml6vh1arhXa7DVmWWcXaaDTYo5FCFEjVKHiezGYz9Pt9yLIMWZZ5XIpCOsjzw2KxoNVqiffCN7BcLjk0ZTabod1uw2QycahNvV7HYDD46M8Qx//rIJUvFW3Oz88RiUS2ijEofU+WZRQKBeRyORQKBdTr9Wc9mr9TRRuSjZIZG80cRiIRBAIBWCyWewsySo8U6hwKHhdx49oPlsslOp0OptMpyuUyO+0vFgtMp1OMRiOMRiOxsXiiKM2KSSWl1+uh0+nY+I06fkq1IpmkbvoZKVPgRDzx7qH0QJIkCQDQaDTw5s0bvHnzBtlsFrVajQt3IrHkYaHrkVIvyNdNrVZjMBhApVKh1WpxcpdQ2uwei8UCnU4H2WyWG4oUrEAplqRszOVyXKAhrzDluD+lBgmeN9PplD3oQqEQPB4PdDodp0G6XC7Y7XbodLpn6eXxPaFmBdk6kA+nMnFK8DgYDAZ4vV6cnJzg7OwM4XB4696erodyuYzb21uk02lUKpVn75m5U0UbqsI5HA74/X6Ew2EcHh4iGAzCarXeiWimTcRmpKJAIHg4yHWfIoC3RaULni7k+aVUS3wqcljwfCGlR7lcRjweh8lkQiqczmIAAAaPSURBVKVSwdu3bxGPx1EulyHLMnvDCR4WmtGfTqeYTCbs6TadTlGr1aDRaCDLMisYe72eSAzaMaibv1gseISUusYulwuz2QyNRgPZbBaZTAb5fB6lUgmdTmdtQyKK4vsBNcYymQy8Xi8nO1KhhtJVnU4nrFYr73ue8+b1MaFQEzH2+/3R6XRwu92cXOnxeO6obABgPB5zWtTV1RXi8ThKpRJ6vd4PeNXfj50q2qjVao6783g88Hg8cDgcMJvNd8xpN0ekAIjOr0DwgNw3tyuur91HnMP9hUY3UqkUJpMJtFotJEnijn+73b53MyDM/R+WyWTCiSUUs67RaDAej9l4tNvtivG0HYMKc5RsServRqMBq9XKqsdarYZKpYJ6vY52uy2aj3sKRVPf3t5CrVZzkhSZVVPRxuVywWazcTqqKNoIdg2NRgOTyQSHw8FBGNuYzWZotVqcnpfL5TgF7Dmzc0UbvV4Pq9UKh8MBq9UKvV5/p0CjLMxQF5mk/Mr4Z4FA8PWIa0ggeH5QulgymUS9XodarcZoNGIPo49tHMU94eGZTCao1+sYjUYwGAxQq9U8qkijp6Jos3vQdUQGw+PxGKVSCTqdjtWrg8GAP8S1tb+Qn0o6ncZ4PGbfD0qT0ul0MJlMMJvNMJvNwmdMsLMofWi3KWyIyWTC41HFYhH1eh3D4fDZ3yd3qmijUqk4DsxqtcJisdwp2lBBhswwm80mCoUCarUay4ipcCMQCAQCgeADq9UK/X4fo9EI1WqV/4xMpcWz8/sym8044W3bWkeck92FmoqdTgfdbnctMEN5bsU5FtDI5Hg8htFoZF+bo6MjSJLE43bk3ykCVwS7CPl69ft9DIdDGAyGtb9frVaYTCaccErpebIs78U9cueKNhqNBgaDARaLBTabDTabDSaTae3rptMpms0mGo0G0uk0rq6ucHNzg1qthuFwKNQ2AoFAIBAo2BwjFuamTwNlceZTiPG03YOajALB5zCZTJDP5/Hnn3/CYDAgn89zup8kSRiNRiJRTrCzzGYzdLtd1Ot1HhfVarVrHrX1eh2ZTAbZbBaVSgWdTmdvnns7VbQBPkinlMUbOqEEpdhcX1/jzz//xNu3b1GpVNBqtTjFZl9OsEAgEAgEn4LM+wW7i1jXCATPHyrSzOdzOBwOTKdTSJKEWq2GTqeD0WgkCoGCnWQymfCETLFYhMfjgdvt5r8fDocoFArIZDIol8ucYLkv7FzRhmKEx+MxRx7OZjPodDoA76t05Cj9r3/9C//85z+RTCZ5Fl/EkwoEAoFAcBfxbBQIBIKnzXQ6RaFQgCRJ0Gg0awmQlEYmlDaCXYO8vOr1OlKpFDweD5xOJwwGA0wmE7/vb25ucHt7i1KphH6/v1frlp0q2lAMW7fbRblcRjKZhEqlQqvVgt1uBwB0Oh0kEgn85z//wR9//IF4PI5ut/uDX7lAIBAIBAKBQCAQfD2LxYINqgWC58R4PEaj0YBOp4Ner4darUa/34fH44Esy4jH4/jPf/6Dm5sblMtl9Hq9vSpQ7lTRhm5U9XodBwcHGI/HKBaLcDqdMBqNAN7LBiuVClKpFPL5PPr9/g9+1QKBQCAQCAQCgUDwdQjPKsFzhzxtaFR7NBohn8/DZrNhOByiVCohnU6jUCig0+lgPB7v1TWxk0WbxWKBfr+PSqUCo9EIvV4Pjeb9f2U2m2E4HEKWZciyvFcVOIFAIBAIBAKBQPC82KfNqWA/mc/n7MlEqpvr62totVrM53MMBgP0ej30+32Mx+O9827aqaINRX1Np1PIsox6vQ6VSnXHPJHSFkRClEAgEAgEAoFAIBAIBE+X5XLJ+3yarKF9Pu3n93l/vxNFG2UU6bbPAoFAIBAIBAKBQCAQCHaHzdG/Ly3K7Mvo4JcWbSQAucd4IR9jH07EJzh+wJ/1Q86hAIA4j88BcQ6fB+I87j7iHD4PxHncfcQ5fB6I87j77OQ5/NZ9/jOsE2w9j6pn+B8VCAQCgUAgEAgEAoFAINh51D/6BQgEAoFAIBAIBAKBQCAQCO4iijYCgUAgEAgEAoFAIBAIBE8QUbQRCAQCgUAgEAgEAoFAIHiCiKKNQCAQCAQCgUAgEAgEAsETRBRtBAKBQCAQCAQCgUAgEAieIKJoIxAIBAKBQCAQCAQCgUDwBBFFG4FAIBAIBAKBQCAQCASCJ4go2ggEAoFAIBAIBAKBQCAQPEFE0UYgEAgEAoFAIBAIBAKB4Any/wDD7+oC1I0JNAAAAABJRU5ErkJggg==\n",
            "text/plain": [
              "<Figure size 1440x288 with 10 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 319
        },
        "id": "9PPujPp53kII",
        "outputId": "f31640af-0ae6-4dfa-bc55-09ed7b4b26ec"
      },
      "source": [
        "import cv2\n",
        "import numpy as np\n",
        "\n",
        "\n",
        "#n=x_val_rgb.shape[0]\n",
        "n=100\n",
        "image_test=[]\n",
        "for i in range(n):\n",
        "  new_image_test = cv2.resize(x_val_rgb[i], dsize=(IMG_SIZE, IMG_SIZE), interpolation=cv2.INTER_CUBIC)\n",
        "  image_test.append(new_image_test)\n",
        "  x_val_array=np.array(image_test)\n",
        "\n",
        "plt.figure(figsize=(20, 4))\n",
        "m=10\n",
        "for i in range(m):\n",
        "    # display original\n",
        "    ax = plt.subplot(1, m, i + 1)\n",
        "    plt.imshow(x_val_array[i])\n",
        "    plt.gray()\n",
        "    ax.get_xaxis().set_visible(False)\n",
        "    ax.get_yaxis().set_visible(False)\n",
        "#plt.show()\n",
        "\n",
        "print(x_val_array.shape)"
      ],
      "execution_count": 12,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n",
            "Clipping input data to the valid range for imshow with RGB data ([0..1] for floats or [0..255] for integers).\n"
          ],
          "name": "stderr"
        },
        {
          "output_type": "stream",
          "text": [
            "(100, 380, 380, 3)\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 1440x288 with 10 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "vhq-SfQMy_fe",
        "outputId": "fdd8bc3f-4e14-4d66-aece-920a47dba2a0"
      },
      "source": [
        "print(x_train_array.shape)\n",
        "print(x_test_array.shape)\n",
        "print(x_val_array.shape)\n",
        "\n"
      ],
      "execution_count": 13,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "(1000, 380, 380, 3)\n",
            "(250, 380, 380, 3)\n",
            "(100, 380, 380, 3)\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "YALP1hvP1C3P"
      },
      "source": [
        "## Instanciate the model:"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "id": "ITi_bQBskcLc",
        "outputId": "1a180414-f613-4d06-a9ba-6918418857a0"
      },
      "source": [
        "#loading the EfficientNet model: \n",
        "from tensorflow.keras.applications import EfficientNetB4\n",
        "model = EfficientNetB4(weights='imagenet')\n",
        "\n",
        "#remove the top layers\n",
        "model = EfficientNetB4(include_top=False, weights='imagenet')\n",
        "\n",
        "#summarize the model\n",
        "model.summary()"
      ],
      "execution_count": 14,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb4.h5\n",
            "78872576/78864416 [==============================] - 1s 0us/step\n",
            "Downloading data from https://storage.googleapis.com/keras-applications/efficientnetb4_notop.h5\n",
            "71688192/71686520 [==============================] - 1s 0us/step\n",
            "Model: \"efficientnetb4\"\n",
            "__________________________________________________________________________________________________\n",
            "Layer (type)                    Output Shape         Param #     Connected to                     \n",
            "==================================================================================================\n",
            "input_2 (InputLayer)            [(None, None, None,  0                                            \n",
            "__________________________________________________________________________________________________\n",
            "rescaling_1 (Rescaling)         (None, None, None, 3 0           input_2[0][0]                    \n",
            "__________________________________________________________________________________________________\n",
            "normalization_1 (Normalization) (None, None, None, 3 7           rescaling_1[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "stem_conv_pad (ZeroPadding2D)   (None, None, None, 3 0           normalization_1[0][0]            \n",
            "__________________________________________________________________________________________________\n",
            "stem_conv (Conv2D)              (None, None, None, 4 1296        stem_conv_pad[0][0]              \n",
            "__________________________________________________________________________________________________\n",
            "stem_bn (BatchNormalization)    (None, None, None, 4 192         stem_conv[0][0]                  \n",
            "__________________________________________________________________________________________________\n",
            "stem_activation (Activation)    (None, None, None, 4 0           stem_bn[0][0]                    \n",
            "__________________________________________________________________________________________________\n",
            "block1a_dwconv (DepthwiseConv2D (None, None, None, 4 432         stem_activation[0][0]            \n",
            "__________________________________________________________________________________________________\n",
            "block1a_bn (BatchNormalization) (None, None, None, 4 192         block1a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block1a_activation (Activation) (None, None, None, 4 0           block1a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_squeeze (GlobalAvera (None, 48)           0           block1a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_reshape (Reshape)    (None, 1, 1, 48)     0           block1a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_reduce (Conv2D)      (None, 1, 1, 12)     588         block1a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_expand (Conv2D)      (None, 1, 1, 48)     624         block1a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1a_se_excite (Multiply)    (None, None, None, 4 0           block1a_activation[0][0]         \n",
            "                                                                 block1a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1a_project_conv (Conv2D)   (None, None, None, 2 1152        block1a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1a_project_bn (BatchNormal (None, None, None, 2 96          block1a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block1b_dwconv (DepthwiseConv2D (None, None, None, 2 216         block1a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1b_bn (BatchNormalization) (None, None, None, 2 96          block1b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block1b_activation (Activation) (None, None, None, 2 0           block1b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block1b_se_squeeze (GlobalAvera (None, 24)           0           block1b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1b_se_reshape (Reshape)    (None, 1, 1, 24)     0           block1b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1b_se_reduce (Conv2D)      (None, 1, 1, 6)      150         block1b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1b_se_expand (Conv2D)      (None, 1, 1, 24)     168         block1b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1b_se_excite (Multiply)    (None, None, None, 2 0           block1b_activation[0][0]         \n",
            "                                                                 block1b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1b_project_conv (Conv2D)   (None, None, None, 2 576         block1b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block1b_project_bn (BatchNormal (None, None, None, 2 96          block1b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block1b_drop (Dropout)          (None, None, None, 2 0           block1b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block1b_add (Add)               (None, None, None, 2 0           block1b_drop[0][0]               \n",
            "                                                                 block1a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_expand_conv (Conv2D)    (None, None, None, 1 3456        block1b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block2a_expand_bn (BatchNormali (None, None, None, 1 576         block2a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block2a_expand_activation (Acti (None, None, None, 1 0           block2a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_dwconv_pad (ZeroPadding (None, None, None, 1 0           block2a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block2a_dwconv (DepthwiseConv2D (None, None, None, 1 1296        block2a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_bn (BatchNormalization) (None, None, None, 1 576         block2a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block2a_activation (Activation) (None, None, None, 1 0           block2a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_squeeze (GlobalAvera (None, 144)          0           block2a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_reshape (Reshape)    (None, 1, 1, 144)    0           block2a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_reduce (Conv2D)      (None, 1, 1, 6)      870         block2a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_expand (Conv2D)      (None, 1, 1, 144)    1008        block2a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_se_excite (Multiply)    (None, None, None, 1 0           block2a_activation[0][0]         \n",
            "                                                                 block2a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_project_conv (Conv2D)   (None, None, None, 3 4608        block2a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2a_project_bn (BatchNormal (None, None, None, 3 128         block2a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block2b_expand_conv (Conv2D)    (None, None, None, 1 6144        block2a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_expand_bn (BatchNormali (None, None, None, 1 768         block2b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block2b_expand_activation (Acti (None, None, None, 1 0           block2b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_dwconv (DepthwiseConv2D (None, None, None, 1 1728        block2b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block2b_bn (BatchNormalization) (None, None, None, 1 768         block2b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block2b_activation (Activation) (None, None, None, 1 0           block2b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_squeeze (GlobalAvera (None, 192)          0           block2b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_reshape (Reshape)    (None, 1, 1, 192)    0           block2b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_reduce (Conv2D)      (None, 1, 1, 8)      1544        block2b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_expand (Conv2D)      (None, 1, 1, 192)    1728        block2b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_se_excite (Multiply)    (None, None, None, 1 0           block2b_activation[0][0]         \n",
            "                                                                 block2b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_project_conv (Conv2D)   (None, None, None, 3 6144        block2b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2b_project_bn (BatchNormal (None, None, None, 3 128         block2b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block2b_drop (Dropout)          (None, None, None, 3 0           block2b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2b_add (Add)               (None, None, None, 3 0           block2b_drop[0][0]               \n",
            "                                                                 block2a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2c_expand_conv (Conv2D)    (None, None, None, 1 6144        block2b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block2c_expand_bn (BatchNormali (None, None, None, 1 768         block2c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block2c_expand_activation (Acti (None, None, None, 1 0           block2c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2c_dwconv (DepthwiseConv2D (None, None, None, 1 1728        block2c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block2c_bn (BatchNormalization) (None, None, None, 1 768         block2c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block2c_activation (Activation) (None, None, None, 1 0           block2c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block2c_se_squeeze (GlobalAvera (None, 192)          0           block2c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2c_se_reshape (Reshape)    (None, 1, 1, 192)    0           block2c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2c_se_reduce (Conv2D)      (None, 1, 1, 8)      1544        block2c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2c_se_expand (Conv2D)      (None, 1, 1, 192)    1728        block2c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2c_se_excite (Multiply)    (None, None, None, 1 0           block2c_activation[0][0]         \n",
            "                                                                 block2c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2c_project_conv (Conv2D)   (None, None, None, 3 6144        block2c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2c_project_bn (BatchNormal (None, None, None, 3 128         block2c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block2c_drop (Dropout)          (None, None, None, 3 0           block2c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2c_add (Add)               (None, None, None, 3 0           block2c_drop[0][0]               \n",
            "                                                                 block2b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block2d_expand_conv (Conv2D)    (None, None, None, 1 6144        block2c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block2d_expand_bn (BatchNormali (None, None, None, 1 768         block2d_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block2d_expand_activation (Acti (None, None, None, 1 0           block2d_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2d_dwconv (DepthwiseConv2D (None, None, None, 1 1728        block2d_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block2d_bn (BatchNormalization) (None, None, None, 1 768         block2d_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block2d_activation (Activation) (None, None, None, 1 0           block2d_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block2d_se_squeeze (GlobalAvera (None, 192)          0           block2d_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2d_se_reshape (Reshape)    (None, 1, 1, 192)    0           block2d_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2d_se_reduce (Conv2D)      (None, 1, 1, 8)      1544        block2d_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2d_se_expand (Conv2D)      (None, 1, 1, 192)    1728        block2d_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2d_se_excite (Multiply)    (None, None, None, 1 0           block2d_activation[0][0]         \n",
            "                                                                 block2d_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2d_project_conv (Conv2D)   (None, None, None, 3 6144        block2d_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block2d_project_bn (BatchNormal (None, None, None, 3 128         block2d_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block2d_drop (Dropout)          (None, None, None, 3 0           block2d_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block2d_add (Add)               (None, None, None, 3 0           block2d_drop[0][0]               \n",
            "                                                                 block2c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block3a_expand_conv (Conv2D)    (None, None, None, 1 6144        block2d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block3a_expand_bn (BatchNormali (None, None, None, 1 768         block3a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block3a_expand_activation (Acti (None, None, None, 1 0           block3a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_dwconv_pad (ZeroPadding (None, None, None, 1 0           block3a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block3a_dwconv (DepthwiseConv2D (None, None, None, 1 4800        block3a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_bn (BatchNormalization) (None, None, None, 1 768         block3a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block3a_activation (Activation) (None, None, None, 1 0           block3a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_squeeze (GlobalAvera (None, 192)          0           block3a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_reshape (Reshape)    (None, 1, 1, 192)    0           block3a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_reduce (Conv2D)      (None, 1, 1, 8)      1544        block3a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_expand (Conv2D)      (None, 1, 1, 192)    1728        block3a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_se_excite (Multiply)    (None, None, None, 1 0           block3a_activation[0][0]         \n",
            "                                                                 block3a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_project_conv (Conv2D)   (None, None, None, 5 10752       block3a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3a_project_bn (BatchNormal (None, None, None, 5 224         block3a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block3b_expand_conv (Conv2D)    (None, None, None, 3 18816       block3a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_expand_bn (BatchNormali (None, None, None, 3 1344        block3b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block3b_expand_activation (Acti (None, None, None, 3 0           block3b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_dwconv (DepthwiseConv2D (None, None, None, 3 8400        block3b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block3b_bn (BatchNormalization) (None, None, None, 3 1344        block3b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block3b_activation (Activation) (None, None, None, 3 0           block3b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_squeeze (GlobalAvera (None, 336)          0           block3b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_reshape (Reshape)    (None, 1, 1, 336)    0           block3b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_reduce (Conv2D)      (None, 1, 1, 14)     4718        block3b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_expand (Conv2D)      (None, 1, 1, 336)    5040        block3b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_se_excite (Multiply)    (None, None, None, 3 0           block3b_activation[0][0]         \n",
            "                                                                 block3b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_project_conv (Conv2D)   (None, None, None, 5 18816       block3b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3b_project_bn (BatchNormal (None, None, None, 5 224         block3b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block3b_drop (Dropout)          (None, None, None, 5 0           block3b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3b_add (Add)               (None, None, None, 5 0           block3b_drop[0][0]               \n",
            "                                                                 block3a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3c_expand_conv (Conv2D)    (None, None, None, 3 18816       block3b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block3c_expand_bn (BatchNormali (None, None, None, 3 1344        block3c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block3c_expand_activation (Acti (None, None, None, 3 0           block3c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3c_dwconv (DepthwiseConv2D (None, None, None, 3 8400        block3c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block3c_bn (BatchNormalization) (None, None, None, 3 1344        block3c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block3c_activation (Activation) (None, None, None, 3 0           block3c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block3c_se_squeeze (GlobalAvera (None, 336)          0           block3c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3c_se_reshape (Reshape)    (None, 1, 1, 336)    0           block3c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3c_se_reduce (Conv2D)      (None, 1, 1, 14)     4718        block3c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3c_se_expand (Conv2D)      (None, 1, 1, 336)    5040        block3c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3c_se_excite (Multiply)    (None, None, None, 3 0           block3c_activation[0][0]         \n",
            "                                                                 block3c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3c_project_conv (Conv2D)   (None, None, None, 5 18816       block3c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3c_project_bn (BatchNormal (None, None, None, 5 224         block3c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block3c_drop (Dropout)          (None, None, None, 5 0           block3c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3c_add (Add)               (None, None, None, 5 0           block3c_drop[0][0]               \n",
            "                                                                 block3b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block3d_expand_conv (Conv2D)    (None, None, None, 3 18816       block3c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block3d_expand_bn (BatchNormali (None, None, None, 3 1344        block3d_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block3d_expand_activation (Acti (None, None, None, 3 0           block3d_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3d_dwconv (DepthwiseConv2D (None, None, None, 3 8400        block3d_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block3d_bn (BatchNormalization) (None, None, None, 3 1344        block3d_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block3d_activation (Activation) (None, None, None, 3 0           block3d_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block3d_se_squeeze (GlobalAvera (None, 336)          0           block3d_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3d_se_reshape (Reshape)    (None, 1, 1, 336)    0           block3d_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3d_se_reduce (Conv2D)      (None, 1, 1, 14)     4718        block3d_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3d_se_expand (Conv2D)      (None, 1, 1, 336)    5040        block3d_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3d_se_excite (Multiply)    (None, None, None, 3 0           block3d_activation[0][0]         \n",
            "                                                                 block3d_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3d_project_conv (Conv2D)   (None, None, None, 5 18816       block3d_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block3d_project_bn (BatchNormal (None, None, None, 5 224         block3d_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block3d_drop (Dropout)          (None, None, None, 5 0           block3d_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block3d_add (Add)               (None, None, None, 5 0           block3d_drop[0][0]               \n",
            "                                                                 block3c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4a_expand_conv (Conv2D)    (None, None, None, 3 18816       block3d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4a_expand_bn (BatchNormali (None, None, None, 3 1344        block4a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4a_expand_activation (Acti (None, None, None, 3 0           block4a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_dwconv_pad (ZeroPadding (None, None, None, 3 0           block4a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4a_dwconv (DepthwiseConv2D (None, None, None, 3 3024        block4a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_bn (BatchNormalization) (None, None, None, 3 1344        block4a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4a_activation (Activation) (None, None, None, 3 0           block4a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_squeeze (GlobalAvera (None, 336)          0           block4a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_reshape (Reshape)    (None, 1, 1, 336)    0           block4a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_reduce (Conv2D)      (None, 1, 1, 14)     4718        block4a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_expand (Conv2D)      (None, 1, 1, 336)    5040        block4a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_se_excite (Multiply)    (None, None, None, 3 0           block4a_activation[0][0]         \n",
            "                                                                 block4a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_project_conv (Conv2D)   (None, None, None, 1 37632       block4a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4a_project_bn (BatchNormal (None, None, None, 1 448         block4a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4b_expand_conv (Conv2D)    (None, None, None, 6 75264       block4a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_expand_bn (BatchNormali (None, None, None, 6 2688        block4b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4b_expand_activation (Acti (None, None, None, 6 0           block4b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_dwconv (DepthwiseConv2D (None, None, None, 6 6048        block4b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4b_bn (BatchNormalization) (None, None, None, 6 2688        block4b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4b_activation (Activation) (None, None, None, 6 0           block4b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_squeeze (GlobalAvera (None, 672)          0           block4b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_reshape (Reshape)    (None, 1, 1, 672)    0           block4b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block4b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block4b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_se_excite (Multiply)    (None, None, None, 6 0           block4b_activation[0][0]         \n",
            "                                                                 block4b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_project_conv (Conv2D)   (None, None, None, 1 75264       block4b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4b_project_bn (BatchNormal (None, None, None, 1 448         block4b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4b_drop (Dropout)          (None, None, None, 1 0           block4b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4b_add (Add)               (None, None, None, 1 0           block4b_drop[0][0]               \n",
            "                                                                 block4a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_expand_conv (Conv2D)    (None, None, None, 6 75264       block4b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4c_expand_bn (BatchNormali (None, None, None, 6 2688        block4c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4c_expand_activation (Acti (None, None, None, 6 0           block4c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_dwconv (DepthwiseConv2D (None, None, None, 6 6048        block4c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4c_bn (BatchNormalization) (None, None, None, 6 2688        block4c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4c_activation (Activation) (None, None, None, 6 0           block4c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_squeeze (GlobalAvera (None, 672)          0           block4c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_reshape (Reshape)    (None, 1, 1, 672)    0           block4c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block4c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block4c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_se_excite (Multiply)    (None, None, None, 6 0           block4c_activation[0][0]         \n",
            "                                                                 block4c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_project_conv (Conv2D)   (None, None, None, 1 75264       block4c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4c_project_bn (BatchNormal (None, None, None, 1 448         block4c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4c_drop (Dropout)          (None, None, None, 1 0           block4c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4c_add (Add)               (None, None, None, 1 0           block4c_drop[0][0]               \n",
            "                                                                 block4b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4d_expand_conv (Conv2D)    (None, None, None, 6 75264       block4c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4d_expand_bn (BatchNormali (None, None, None, 6 2688        block4d_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4d_expand_activation (Acti (None, None, None, 6 0           block4d_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4d_dwconv (DepthwiseConv2D (None, None, None, 6 6048        block4d_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4d_bn (BatchNormalization) (None, None, None, 6 2688        block4d_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4d_activation (Activation) (None, None, None, 6 0           block4d_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4d_se_squeeze (GlobalAvera (None, 672)          0           block4d_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4d_se_reshape (Reshape)    (None, 1, 1, 672)    0           block4d_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4d_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block4d_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4d_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block4d_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4d_se_excite (Multiply)    (None, None, None, 6 0           block4d_activation[0][0]         \n",
            "                                                                 block4d_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4d_project_conv (Conv2D)   (None, None, None, 1 75264       block4d_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4d_project_bn (BatchNormal (None, None, None, 1 448         block4d_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4d_drop (Dropout)          (None, None, None, 1 0           block4d_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4d_add (Add)               (None, None, None, 1 0           block4d_drop[0][0]               \n",
            "                                                                 block4c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4e_expand_conv (Conv2D)    (None, None, None, 6 75264       block4d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4e_expand_bn (BatchNormali (None, None, None, 6 2688        block4e_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4e_expand_activation (Acti (None, None, None, 6 0           block4e_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4e_dwconv (DepthwiseConv2D (None, None, None, 6 6048        block4e_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4e_bn (BatchNormalization) (None, None, None, 6 2688        block4e_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4e_activation (Activation) (None, None, None, 6 0           block4e_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4e_se_squeeze (GlobalAvera (None, 672)          0           block4e_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4e_se_reshape (Reshape)    (None, 1, 1, 672)    0           block4e_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4e_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block4e_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4e_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block4e_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4e_se_excite (Multiply)    (None, None, None, 6 0           block4e_activation[0][0]         \n",
            "                                                                 block4e_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4e_project_conv (Conv2D)   (None, None, None, 1 75264       block4e_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4e_project_bn (BatchNormal (None, None, None, 1 448         block4e_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4e_drop (Dropout)          (None, None, None, 1 0           block4e_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4e_add (Add)               (None, None, None, 1 0           block4e_drop[0][0]               \n",
            "                                                                 block4d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4f_expand_conv (Conv2D)    (None, None, None, 6 75264       block4e_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block4f_expand_bn (BatchNormali (None, None, None, 6 2688        block4f_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block4f_expand_activation (Acti (None, None, None, 6 0           block4f_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4f_dwconv (DepthwiseConv2D (None, None, None, 6 6048        block4f_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block4f_bn (BatchNormalization) (None, None, None, 6 2688        block4f_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block4f_activation (Activation) (None, None, None, 6 0           block4f_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block4f_se_squeeze (GlobalAvera (None, 672)          0           block4f_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4f_se_reshape (Reshape)    (None, 1, 1, 672)    0           block4f_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4f_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block4f_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4f_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block4f_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4f_se_excite (Multiply)    (None, None, None, 6 0           block4f_activation[0][0]         \n",
            "                                                                 block4f_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4f_project_conv (Conv2D)   (None, None, None, 1 75264       block4f_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block4f_project_bn (BatchNormal (None, None, None, 1 448         block4f_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block4f_drop (Dropout)          (None, None, None, 1 0           block4f_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block4f_add (Add)               (None, None, None, 1 0           block4f_drop[0][0]               \n",
            "                                                                 block4e_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5a_expand_conv (Conv2D)    (None, None, None, 6 75264       block4f_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5a_expand_bn (BatchNormali (None, None, None, 6 2688        block5a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5a_expand_activation (Acti (None, None, None, 6 0           block5a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_dwconv (DepthwiseConv2D (None, None, None, 6 16800       block5a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5a_bn (BatchNormalization) (None, None, None, 6 2688        block5a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5a_activation (Activation) (None, None, None, 6 0           block5a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_squeeze (GlobalAvera (None, 672)          0           block5a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_reshape (Reshape)    (None, 1, 1, 672)    0           block5a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_reduce (Conv2D)      (None, 1, 1, 28)     18844       block5a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_expand (Conv2D)      (None, 1, 1, 672)    19488       block5a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_se_excite (Multiply)    (None, None, None, 6 0           block5a_activation[0][0]         \n",
            "                                                                 block5a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_project_conv (Conv2D)   (None, None, None, 1 107520      block5a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5a_project_bn (BatchNormal (None, None, None, 1 640         block5a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5b_expand_conv (Conv2D)    (None, None, None, 9 153600      block5a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_expand_bn (BatchNormali (None, None, None, 9 3840        block5b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5b_expand_activation (Acti (None, None, None, 9 0           block5b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_dwconv (DepthwiseConv2D (None, None, None, 9 24000       block5b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5b_bn (BatchNormalization) (None, None, None, 9 3840        block5b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5b_activation (Activation) (None, None, None, 9 0           block5b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_squeeze (GlobalAvera (None, 960)          0           block5b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_reshape (Reshape)    (None, 1, 1, 960)    0           block5b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_reduce (Conv2D)      (None, 1, 1, 40)     38440       block5b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_expand (Conv2D)      (None, 1, 1, 960)    39360       block5b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_se_excite (Multiply)    (None, None, None, 9 0           block5b_activation[0][0]         \n",
            "                                                                 block5b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_project_conv (Conv2D)   (None, None, None, 1 153600      block5b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5b_project_bn (BatchNormal (None, None, None, 1 640         block5b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5b_drop (Dropout)          (None, None, None, 1 0           block5b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5b_add (Add)               (None, None, None, 1 0           block5b_drop[0][0]               \n",
            "                                                                 block5a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_expand_conv (Conv2D)    (None, None, None, 9 153600      block5b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5c_expand_bn (BatchNormali (None, None, None, 9 3840        block5c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5c_expand_activation (Acti (None, None, None, 9 0           block5c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_dwconv (DepthwiseConv2D (None, None, None, 9 24000       block5c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5c_bn (BatchNormalization) (None, None, None, 9 3840        block5c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5c_activation (Activation) (None, None, None, 9 0           block5c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_squeeze (GlobalAvera (None, 960)          0           block5c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_reshape (Reshape)    (None, 1, 1, 960)    0           block5c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_reduce (Conv2D)      (None, 1, 1, 40)     38440       block5c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_expand (Conv2D)      (None, 1, 1, 960)    39360       block5c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_se_excite (Multiply)    (None, None, None, 9 0           block5c_activation[0][0]         \n",
            "                                                                 block5c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_project_conv (Conv2D)   (None, None, None, 1 153600      block5c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5c_project_bn (BatchNormal (None, None, None, 1 640         block5c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5c_drop (Dropout)          (None, None, None, 1 0           block5c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5c_add (Add)               (None, None, None, 1 0           block5c_drop[0][0]               \n",
            "                                                                 block5b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5d_expand_conv (Conv2D)    (None, None, None, 9 153600      block5c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5d_expand_bn (BatchNormali (None, None, None, 9 3840        block5d_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5d_expand_activation (Acti (None, None, None, 9 0           block5d_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5d_dwconv (DepthwiseConv2D (None, None, None, 9 24000       block5d_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5d_bn (BatchNormalization) (None, None, None, 9 3840        block5d_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5d_activation (Activation) (None, None, None, 9 0           block5d_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5d_se_squeeze (GlobalAvera (None, 960)          0           block5d_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5d_se_reshape (Reshape)    (None, 1, 1, 960)    0           block5d_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5d_se_reduce (Conv2D)      (None, 1, 1, 40)     38440       block5d_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5d_se_expand (Conv2D)      (None, 1, 1, 960)    39360       block5d_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5d_se_excite (Multiply)    (None, None, None, 9 0           block5d_activation[0][0]         \n",
            "                                                                 block5d_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5d_project_conv (Conv2D)   (None, None, None, 1 153600      block5d_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5d_project_bn (BatchNormal (None, None, None, 1 640         block5d_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5d_drop (Dropout)          (None, None, None, 1 0           block5d_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5d_add (Add)               (None, None, None, 1 0           block5d_drop[0][0]               \n",
            "                                                                 block5c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5e_expand_conv (Conv2D)    (None, None, None, 9 153600      block5d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5e_expand_bn (BatchNormali (None, None, None, 9 3840        block5e_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5e_expand_activation (Acti (None, None, None, 9 0           block5e_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5e_dwconv (DepthwiseConv2D (None, None, None, 9 24000       block5e_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5e_bn (BatchNormalization) (None, None, None, 9 3840        block5e_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5e_activation (Activation) (None, None, None, 9 0           block5e_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5e_se_squeeze (GlobalAvera (None, 960)          0           block5e_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5e_se_reshape (Reshape)    (None, 1, 1, 960)    0           block5e_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5e_se_reduce (Conv2D)      (None, 1, 1, 40)     38440       block5e_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5e_se_expand (Conv2D)      (None, 1, 1, 960)    39360       block5e_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5e_se_excite (Multiply)    (None, None, None, 9 0           block5e_activation[0][0]         \n",
            "                                                                 block5e_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5e_project_conv (Conv2D)   (None, None, None, 1 153600      block5e_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5e_project_bn (BatchNormal (None, None, None, 1 640         block5e_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5e_drop (Dropout)          (None, None, None, 1 0           block5e_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5e_add (Add)               (None, None, None, 1 0           block5e_drop[0][0]               \n",
            "                                                                 block5d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5f_expand_conv (Conv2D)    (None, None, None, 9 153600      block5e_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block5f_expand_bn (BatchNormali (None, None, None, 9 3840        block5f_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block5f_expand_activation (Acti (None, None, None, 9 0           block5f_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5f_dwconv (DepthwiseConv2D (None, None, None, 9 24000       block5f_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block5f_bn (BatchNormalization) (None, None, None, 9 3840        block5f_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block5f_activation (Activation) (None, None, None, 9 0           block5f_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block5f_se_squeeze (GlobalAvera (None, 960)          0           block5f_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5f_se_reshape (Reshape)    (None, 1, 1, 960)    0           block5f_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5f_se_reduce (Conv2D)      (None, 1, 1, 40)     38440       block5f_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5f_se_expand (Conv2D)      (None, 1, 1, 960)    39360       block5f_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5f_se_excite (Multiply)    (None, None, None, 9 0           block5f_activation[0][0]         \n",
            "                                                                 block5f_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5f_project_conv (Conv2D)   (None, None, None, 1 153600      block5f_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block5f_project_bn (BatchNormal (None, None, None, 1 640         block5f_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block5f_drop (Dropout)          (None, None, None, 1 0           block5f_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block5f_add (Add)               (None, None, None, 1 0           block5f_drop[0][0]               \n",
            "                                                                 block5e_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6a_expand_conv (Conv2D)    (None, None, None, 9 153600      block5f_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6a_expand_bn (BatchNormali (None, None, None, 9 3840        block6a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6a_expand_activation (Acti (None, None, None, 9 0           block6a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_dwconv_pad (ZeroPadding (None, None, None, 9 0           block6a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6a_dwconv (DepthwiseConv2D (None, None, None, 9 24000       block6a_dwconv_pad[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_bn (BatchNormalization) (None, None, None, 9 3840        block6a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6a_activation (Activation) (None, None, None, 9 0           block6a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_squeeze (GlobalAvera (None, 960)          0           block6a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_reshape (Reshape)    (None, 1, 1, 960)    0           block6a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_reduce (Conv2D)      (None, 1, 1, 40)     38440       block6a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_expand (Conv2D)      (None, 1, 1, 960)    39360       block6a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_se_excite (Multiply)    (None, None, None, 9 0           block6a_activation[0][0]         \n",
            "                                                                 block6a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_project_conv (Conv2D)   (None, None, None, 2 261120      block6a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6a_project_bn (BatchNormal (None, None, None, 2 1088        block6a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6b_expand_conv (Conv2D)    (None, None, None, 1 443904      block6a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_expand_bn (BatchNormali (None, None, None, 1 6528        block6b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6b_expand_activation (Acti (None, None, None, 1 0           block6b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_dwconv (DepthwiseConv2D (None, None, None, 1 40800       block6b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6b_bn (BatchNormalization) (None, None, None, 1 6528        block6b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6b_activation (Activation) (None, None, None, 1 0           block6b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_squeeze (GlobalAvera (None, 1632)         0           block6b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block6b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block6b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block6b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_se_excite (Multiply)    (None, None, None, 1 0           block6b_activation[0][0]         \n",
            "                                                                 block6b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_project_conv (Conv2D)   (None, None, None, 2 443904      block6b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6b_project_bn (BatchNormal (None, None, None, 2 1088        block6b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6b_drop (Dropout)          (None, None, None, 2 0           block6b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6b_add (Add)               (None, None, None, 2 0           block6b_drop[0][0]               \n",
            "                                                                 block6a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_expand_conv (Conv2D)    (None, None, None, 1 443904      block6b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6c_expand_bn (BatchNormali (None, None, None, 1 6528        block6c_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6c_expand_activation (Acti (None, None, None, 1 0           block6c_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_dwconv (DepthwiseConv2D (None, None, None, 1 40800       block6c_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6c_bn (BatchNormalization) (None, None, None, 1 6528        block6c_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6c_activation (Activation) (None, None, None, 1 0           block6c_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_squeeze (GlobalAvera (None, 1632)         0           block6c_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block6c_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block6c_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block6c_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_se_excite (Multiply)    (None, None, None, 1 0           block6c_activation[0][0]         \n",
            "                                                                 block6c_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_project_conv (Conv2D)   (None, None, None, 2 443904      block6c_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6c_project_bn (BatchNormal (None, None, None, 2 1088        block6c_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6c_drop (Dropout)          (None, None, None, 2 0           block6c_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6c_add (Add)               (None, None, None, 2 0           block6c_drop[0][0]               \n",
            "                                                                 block6b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6d_expand_conv (Conv2D)    (None, None, None, 1 443904      block6c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6d_expand_bn (BatchNormali (None, None, None, 1 6528        block6d_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6d_expand_activation (Acti (None, None, None, 1 0           block6d_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_dwconv (DepthwiseConv2D (None, None, None, 1 40800       block6d_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6d_bn (BatchNormalization) (None, None, None, 1 6528        block6d_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6d_activation (Activation) (None, None, None, 1 0           block6d_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_squeeze (GlobalAvera (None, 1632)         0           block6d_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block6d_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block6d_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block6d_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_se_excite (Multiply)    (None, None, None, 1 0           block6d_activation[0][0]         \n",
            "                                                                 block6d_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_project_conv (Conv2D)   (None, None, None, 2 443904      block6d_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6d_project_bn (BatchNormal (None, None, None, 2 1088        block6d_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6d_drop (Dropout)          (None, None, None, 2 0           block6d_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6d_add (Add)               (None, None, None, 2 0           block6d_drop[0][0]               \n",
            "                                                                 block6c_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6e_expand_conv (Conv2D)    (None, None, None, 1 443904      block6d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6e_expand_bn (BatchNormali (None, None, None, 1 6528        block6e_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6e_expand_activation (Acti (None, None, None, 1 0           block6e_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6e_dwconv (DepthwiseConv2D (None, None, None, 1 40800       block6e_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6e_bn (BatchNormalization) (None, None, None, 1 6528        block6e_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6e_activation (Activation) (None, None, None, 1 0           block6e_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6e_se_squeeze (GlobalAvera (None, 1632)         0           block6e_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6e_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block6e_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6e_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block6e_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6e_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block6e_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6e_se_excite (Multiply)    (None, None, None, 1 0           block6e_activation[0][0]         \n",
            "                                                                 block6e_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6e_project_conv (Conv2D)   (None, None, None, 2 443904      block6e_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6e_project_bn (BatchNormal (None, None, None, 2 1088        block6e_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6e_drop (Dropout)          (None, None, None, 2 0           block6e_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6e_add (Add)               (None, None, None, 2 0           block6e_drop[0][0]               \n",
            "                                                                 block6d_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6f_expand_conv (Conv2D)    (None, None, None, 1 443904      block6e_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6f_expand_bn (BatchNormali (None, None, None, 1 6528        block6f_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6f_expand_activation (Acti (None, None, None, 1 0           block6f_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6f_dwconv (DepthwiseConv2D (None, None, None, 1 40800       block6f_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6f_bn (BatchNormalization) (None, None, None, 1 6528        block6f_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6f_activation (Activation) (None, None, None, 1 0           block6f_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6f_se_squeeze (GlobalAvera (None, 1632)         0           block6f_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6f_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block6f_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6f_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block6f_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6f_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block6f_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6f_se_excite (Multiply)    (None, None, None, 1 0           block6f_activation[0][0]         \n",
            "                                                                 block6f_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6f_project_conv (Conv2D)   (None, None, None, 2 443904      block6f_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6f_project_bn (BatchNormal (None, None, None, 2 1088        block6f_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6f_drop (Dropout)          (None, None, None, 2 0           block6f_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6f_add (Add)               (None, None, None, 2 0           block6f_drop[0][0]               \n",
            "                                                                 block6e_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6g_expand_conv (Conv2D)    (None, None, None, 1 443904      block6f_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6g_expand_bn (BatchNormali (None, None, None, 1 6528        block6g_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6g_expand_activation (Acti (None, None, None, 1 0           block6g_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6g_dwconv (DepthwiseConv2D (None, None, None, 1 40800       block6g_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6g_bn (BatchNormalization) (None, None, None, 1 6528        block6g_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6g_activation (Activation) (None, None, None, 1 0           block6g_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6g_se_squeeze (GlobalAvera (None, 1632)         0           block6g_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6g_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block6g_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6g_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block6g_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6g_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block6g_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6g_se_excite (Multiply)    (None, None, None, 1 0           block6g_activation[0][0]         \n",
            "                                                                 block6g_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6g_project_conv (Conv2D)   (None, None, None, 2 443904      block6g_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6g_project_bn (BatchNormal (None, None, None, 2 1088        block6g_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6g_drop (Dropout)          (None, None, None, 2 0           block6g_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6g_add (Add)               (None, None, None, 2 0           block6g_drop[0][0]               \n",
            "                                                                 block6f_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6h_expand_conv (Conv2D)    (None, None, None, 1 443904      block6g_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block6h_expand_bn (BatchNormali (None, None, None, 1 6528        block6h_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block6h_expand_activation (Acti (None, None, None, 1 0           block6h_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6h_dwconv (DepthwiseConv2D (None, None, None, 1 40800       block6h_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block6h_bn (BatchNormalization) (None, None, None, 1 6528        block6h_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block6h_activation (Activation) (None, None, None, 1 0           block6h_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block6h_se_squeeze (GlobalAvera (None, 1632)         0           block6h_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6h_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block6h_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6h_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block6h_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6h_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block6h_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6h_se_excite (Multiply)    (None, None, None, 1 0           block6h_activation[0][0]         \n",
            "                                                                 block6h_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6h_project_conv (Conv2D)   (None, None, None, 2 443904      block6h_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block6h_project_bn (BatchNormal (None, None, None, 2 1088        block6h_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block6h_drop (Dropout)          (None, None, None, 2 0           block6h_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block6h_add (Add)               (None, None, None, 2 0           block6h_drop[0][0]               \n",
            "                                                                 block6g_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block7a_expand_conv (Conv2D)    (None, None, None, 1 443904      block6h_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "block7a_expand_bn (BatchNormali (None, None, None, 1 6528        block7a_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block7a_expand_activation (Acti (None, None, None, 1 0           block7a_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_dwconv (DepthwiseConv2D (None, None, None, 1 14688       block7a_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block7a_bn (BatchNormalization) (None, None, None, 1 6528        block7a_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block7a_activation (Activation) (None, None, None, 1 0           block7a_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_squeeze (GlobalAvera (None, 1632)         0           block7a_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_reshape (Reshape)    (None, 1, 1, 1632)   0           block7a_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_reduce (Conv2D)      (None, 1, 1, 68)     111044      block7a_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_expand (Conv2D)      (None, 1, 1, 1632)   112608      block7a_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_se_excite (Multiply)    (None, None, None, 1 0           block7a_activation[0][0]         \n",
            "                                                                 block7a_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_project_conv (Conv2D)   (None, None, None, 4 731136      block7a_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7a_project_bn (BatchNormal (None, None, None, 4 1792        block7a_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block7b_expand_conv (Conv2D)    (None, None, None, 2 1204224     block7a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7b_expand_bn (BatchNormali (None, None, None, 2 10752       block7b_expand_conv[0][0]        \n",
            "__________________________________________________________________________________________________\n",
            "block7b_expand_activation (Acti (None, None, None, 2 0           block7b_expand_bn[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7b_dwconv (DepthwiseConv2D (None, None, None, 2 24192       block7b_expand_activation[0][0]  \n",
            "__________________________________________________________________________________________________\n",
            "block7b_bn (BatchNormalization) (None, None, None, 2 10752       block7b_dwconv[0][0]             \n",
            "__________________________________________________________________________________________________\n",
            "block7b_activation (Activation) (None, None, None, 2 0           block7b_bn[0][0]                 \n",
            "__________________________________________________________________________________________________\n",
            "block7b_se_squeeze (GlobalAvera (None, 2688)         0           block7b_activation[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7b_se_reshape (Reshape)    (None, 1, 1, 2688)   0           block7b_se_squeeze[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7b_se_reduce (Conv2D)      (None, 1, 1, 112)    301168      block7b_se_reshape[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7b_se_expand (Conv2D)      (None, 1, 1, 2688)   303744      block7b_se_reduce[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7b_se_excite (Multiply)    (None, None, None, 2 0           block7b_activation[0][0]         \n",
            "                                                                 block7b_se_expand[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7b_project_conv (Conv2D)   (None, None, None, 4 1204224     block7b_se_excite[0][0]          \n",
            "__________________________________________________________________________________________________\n",
            "block7b_project_bn (BatchNormal (None, None, None, 4 1792        block7b_project_conv[0][0]       \n",
            "__________________________________________________________________________________________________\n",
            "block7b_drop (Dropout)          (None, None, None, 4 0           block7b_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "block7b_add (Add)               (None, None, None, 4 0           block7b_drop[0][0]               \n",
            "                                                                 block7a_project_bn[0][0]         \n",
            "__________________________________________________________________________________________________\n",
            "top_conv (Conv2D)               (None, None, None, 1 802816      block7b_add[0][0]                \n",
            "__________________________________________________________________________________________________\n",
            "top_bn (BatchNormalization)     (None, None, None, 1 7168        top_conv[0][0]                   \n",
            "__________________________________________________________________________________________________\n",
            "top_activation (Activation)     (None, None, None, 1 0           top_bn[0][0]                     \n",
            "==================================================================================================\n",
            "Total params: 17,673,823\n",
            "Trainable params: 17,548,616\n",
            "Non-trainable params: 125,207\n",
            "__________________________________________________________________________________________________\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "pFlvNPWakOwI"
      },
      "source": [
        "\n",
        "from tensorflow.keras.layers.experimental import preprocessing\n",
        "from tensorflow.keras.models import Sequential\n",
        "from tensorflow.keras import layers\n",
        "\n",
        "#model freezed: on fait du transfer learning avec ce modèle, les layers sont inchangées. \n",
        "\n",
        "def build_model(num_classes):\n",
        "    inputs = layers.Input(shape=(IMG_SIZE, IMG_SIZE, 3))\n",
        "\n",
        "    model = EfficientNetB4(include_top=False, input_tensor=inputs, weights=\"imagenet\")\n",
        "\n",
        "    # Freeze the pretrained weights\n",
        "    model.trainable = False\n",
        "\n",
        "    # Rebuild top\n",
        "    x = layers.GlobalAveragePooling2D(name=\"avg_pool\")(model.output)\n",
        "    x = layers.BatchNormalization()(x)\n",
        "\n",
        "    top_dropout_rate = 0.2\n",
        "    x = layers.Dropout(top_dropout_rate, name=\"top_dropout\")(x)\n",
        "    outputs = layers.Dense(num_classes, activation=\"softmax\", name=\"pred\")(x)\n",
        "\n",
        "    # Compile\n",
        "    model = tf.keras.Model(inputs, outputs, name=\"EfficientNet\")\n",
        "    optimizer = tf.keras.optimizers.Adam(learning_rate=1e-4)\n",
        "    model.compile(\n",
        "        optimizer=optimizer, loss=\"categorical_crossentropy\", metrics=[\"accuracy\"]\n",
        "    )\n",
        "    return model"
      ],
      "execution_count": 15,
      "outputs": []
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "v0KVtm47L_i0"
      },
      "source": [
        "def plot_hist(hist):\n",
        "    plt.plot(hist.history[\"accuracy\"])\n",
        "    plt.plot(hist.history[\"val_accuracy\"])\n",
        "    plt.title(\"model accuracy\")\n",
        "    plt.ylabel(\"accuracy\")\n",
        "    plt.xlabel(\"epoch\")\n",
        "    plt.legend([\"train\", \"validation\"], loc=\"upper left\")\n",
        "    plt.show()"
      ],
      "execution_count": 16,
      "outputs": []
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "KT0ptyVFTHW7"
      },
      "source": [
        "# Transfer learning and Fine Tuning:\n",
        "\n",
        "**First step : transfer learning**\n",
        "\n",
        "La première étape est de garder toute les layers freeze et de n'entrainer que les top layers. Pour se faire on prend un learning rate assez grand pour ne pas que l'entrainement soit trop long. \n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "colab": {
          "base_uri": "https://localhost:8080/",
          "height": 1000
        },
        "id": "Bn4VVDauTg3V",
        "outputId": "cac7387e-e649-4372-8427-8788f24880d4"
      },
      "source": [
        "model = build_model(num_classes=num_classes)\n",
        "\n",
        "epochs = 25  # @param {type: \"slider\", min:8, max:80}\n",
        "hist = model.fit(x_train_array, y_train_array, epochs=epochs, verbose=2)\n",
        "plot_hist(hist)"
      ],
      "execution_count": 17,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/25\n",
            "32/32 - 57s - loss: 2.5181 - accuracy: 0.1070\n",
            "Epoch 2/25\n",
            "32/32 - 13s - loss: 2.4386 - accuracy: 0.1040\n",
            "Epoch 3/25\n",
            "32/32 - 13s - loss: 2.4004 - accuracy: 0.1030\n",
            "Epoch 4/25\n",
            "32/32 - 13s - loss: 2.4207 - accuracy: 0.1060\n",
            "Epoch 5/25\n",
            "32/32 - 13s - loss: 2.4297 - accuracy: 0.0940\n",
            "Epoch 6/25\n",
            "32/32 - 13s - loss: 2.4065 - accuracy: 0.1020\n",
            "Epoch 7/25\n",
            "32/32 - 13s - loss: 2.3870 - accuracy: 0.1150\n",
            "Epoch 8/25\n",
            "32/32 - 13s - loss: 2.3590 - accuracy: 0.1310\n",
            "Epoch 9/25\n",
            "32/32 - 13s - loss: 2.4079 - accuracy: 0.1040\n",
            "Epoch 10/25\n",
            "32/32 - 13s - loss: 2.3892 - accuracy: 0.1060\n",
            "Epoch 11/25\n",
            "32/32 - 13s - loss: 2.4019 - accuracy: 0.1110\n",
            "Epoch 12/25\n",
            "32/32 - 13s - loss: 2.3750 - accuracy: 0.1070\n",
            "Epoch 13/25\n",
            "32/32 - 13s - loss: 2.4205 - accuracy: 0.0950\n",
            "Epoch 14/25\n",
            "32/32 - 13s - loss: 2.4032 - accuracy: 0.0880\n",
            "Epoch 15/25\n",
            "32/32 - 13s - loss: 2.3775 - accuracy: 0.1200\n",
            "Epoch 16/25\n",
            "32/32 - 13s - loss: 2.3835 - accuracy: 0.1140\n",
            "Epoch 17/25\n",
            "32/32 - 13s - loss: 2.3920 - accuracy: 0.1140\n",
            "Epoch 18/25\n",
            "32/32 - 13s - loss: 2.3825 - accuracy: 0.1190\n",
            "Epoch 19/25\n",
            "32/32 - 13s - loss: 2.3690 - accuracy: 0.1050\n",
            "Epoch 20/25\n",
            "32/32 - 13s - loss: 2.3945 - accuracy: 0.1030\n",
            "Epoch 21/25\n",
            "32/32 - 13s - loss: 2.3964 - accuracy: 0.0870\n",
            "Epoch 22/25\n",
            "32/32 - 13s - loss: 2.3896 - accuracy: 0.0980\n",
            "Epoch 23/25\n",
            "32/32 - 13s - loss: 2.3777 - accuracy: 0.1180\n",
            "Epoch 24/25\n",
            "32/32 - 13s - loss: 2.3878 - accuracy: 0.1130\n",
            "Epoch 25/25\n",
            "32/32 - 13s - loss: 2.4085 - accuracy: 0.0960\n"
          ],
          "name": "stdout"
        },
        {
          "output_type": "error",
          "ename": "KeyError",
          "evalue": "ignored",
          "traceback": [
            "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m",
            "\u001b[0;31mKeyError\u001b[0m                                  Traceback (most recent call last)",
            "\u001b[0;32m<ipython-input-17-832e8dd72e2d>\u001b[0m in \u001b[0;36m<module>\u001b[0;34m()\u001b[0m\n\u001b[1;32m      3\u001b[0m \u001b[0mepochs\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;36m25\u001b[0m  \u001b[0;31m# @param {type: \"slider\", min:8, max:80}\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      4\u001b[0m \u001b[0mhist\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mmodel\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mfit\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mx_train_array\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0my_train_array\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mepochs\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mepochs\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mverbose\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m2\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mplot_hist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m",
            "\u001b[0;32m<ipython-input-16-6f0b391ff598>\u001b[0m in \u001b[0;36mplot_hist\u001b[0;34m(hist)\u001b[0m\n\u001b[1;32m      1\u001b[0m \u001b[0;32mdef\u001b[0m \u001b[0mplot_hist\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      2\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"accuracy\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 3\u001b[0;31m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mhist\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mhistory\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m\"val_accuracy\"\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m      4\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mtitle\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"model accuracy\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m      5\u001b[0m     \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mylabel\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"accuracy\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n",
            "\u001b[0;31mKeyError\u001b[0m: 'val_accuracy'"
          ]
        },
        {
          "output_type": "display_data",
          "data": {
            "image/png": "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\n",
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "tags": [],
            "needs_background": "light"
          }
        }
      ]
    },
    {
      "cell_type": "markdown",
      "metadata": {
        "id": "hhjuSxxb27I1"
      },
      "source": [
        "**Second step: fine tuning**\n",
        "\n",
        "\n",
        "La seconde étape va être d'unfreeze un certains nombre de couches et fitter le modèle en utilisant un learning rate plus petit. \n",
        "On va d'abord essayer d'unfreeze toutes les couches mais on aurait aussi pu le faire que sur certaines. \n",
        "Notre dataset étant très différent d'ImageNet (image en couleur pour ImageNet face à des dessins de chiffres en greyscale pour MNIST) cette étape est très important. En effet les features pré entrainé sont moins efficace et consiste en une grosse partie du travail. \n",
        "`(ajouter nos résultats ici pour voir si ça a bien marché: ...)`\n",
        "\n",
        "Attention on ne modifie pas les batchnorm layers au risque de fortement réduire la performance. \n"
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "oK-9IMxZQ1Ic",
        "colab": {
          "base_uri": "https://localhost:8080/"
        },
        "outputId": "07b1d1f0-b99f-4157-e4e3-e1db878fcc89"
      },
      "source": [
        "#définir un modèle unfreeze pour le fine tuning: \n",
        "\n",
        "def unfreeze_model(model):\n",
        "    # We unfreeze the top 20 layers while leaving BatchNorm layers frozen\n",
        "    for layer in model.layers[-20:]:\n",
        "        if not isinstance(layer, layers.BatchNormalization):\n",
        "            layer.trainable = True\n",
        "\n",
        "    optimizer = tf.keras.optimizers.Adam(learning_rate=1e-4)\n",
        "    model.compile(\n",
        "        optimizer=optimizer, loss=\"categorical_crossentropy\", metrics=[\"accuracy\"]\n",
        "    )\n",
        "\n",
        "\n",
        "unfreeze_model(model)\n",
        "\n",
        "epochs = 61  # @param {type: \"slider\", min:8, max:80}\n",
        "hist = model.fit(x_train_array, y_train_array, epochs=epochs, verbose=2)\n",
        "plot_hist(hist)"
      ],
      "execution_count": null,
      "outputs": [
        {
          "output_type": "stream",
          "text": [
            "Epoch 1/61\n",
            "32/32 - 23s - loss: 2.4294 - accuracy: 0.1050\n",
            "Epoch 2/61\n",
            "32/32 - 14s - loss: 2.4403 - accuracy: 0.0970\n",
            "Epoch 3/61\n",
            "32/32 - 14s - loss: 2.4450 - accuracy: 0.0940\n",
            "Epoch 4/61\n",
            "32/32 - 13s - loss: 2.3830 - accuracy: 0.1140\n",
            "Epoch 5/61\n",
            "32/32 - 13s - loss: 2.3805 - accuracy: 0.1060\n",
            "Epoch 6/61\n",
            "32/32 - 13s - loss: 2.4042 - accuracy: 0.1260\n",
            "Epoch 7/61\n",
            "32/32 - 13s - loss: 2.4020 - accuracy: 0.1090\n",
            "Epoch 8/61\n",
            "32/32 - 13s - loss: 2.4034 - accuracy: 0.1070\n",
            "Epoch 9/61\n",
            "32/32 - 13s - loss: 2.4260 - accuracy: 0.0940\n",
            "Epoch 10/61\n",
            "32/32 - 13s - loss: 2.3888 - accuracy: 0.1030\n",
            "Epoch 11/61\n",
            "32/32 - 13s - loss: 2.3914 - accuracy: 0.1090\n",
            "Epoch 12/61\n",
            "32/32 - 13s - loss: 2.3715 - accuracy: 0.1200\n",
            "Epoch 13/61\n",
            "32/32 - 13s - loss: 2.4052 - accuracy: 0.1010\n",
            "Epoch 14/61\n",
            "32/32 - 13s - loss: 2.3808 - accuracy: 0.1130\n",
            "Epoch 15/61\n",
            "32/32 - 13s - loss: 2.3843 - accuracy: 0.1000\n",
            "Epoch 16/61\n",
            "32/32 - 13s - loss: 2.4103 - accuracy: 0.0920\n",
            "Epoch 17/61\n",
            "32/32 - 13s - loss: 2.3924 - accuracy: 0.0940\n",
            "Epoch 18/61\n",
            "32/32 - 13s - loss: 2.4024 - accuracy: 0.1000\n",
            "Epoch 19/61\n",
            "32/32 - 13s - loss: 2.4134 - accuracy: 0.0950\n",
            "Epoch 20/61\n",
            "32/32 - 13s - loss: 2.3854 - accuracy: 0.0970\n",
            "Epoch 21/61\n",
            "32/32 - 13s - loss: 2.3771 - accuracy: 0.1020\n",
            "Epoch 22/61\n",
            "32/32 - 13s - loss: 2.3509 - accuracy: 0.1130\n",
            "Epoch 23/61\n",
            "32/32 - 13s - loss: 2.3844 - accuracy: 0.1160\n",
            "Epoch 24/61\n",
            "32/32 - 13s - loss: 2.3807 - accuracy: 0.1060\n",
            "Epoch 25/61\n",
            "32/32 - 13s - loss: 2.3740 - accuracy: 0.1050\n",
            "Epoch 26/61\n",
            "32/32 - 13s - loss: 2.3663 - accuracy: 0.0960\n",
            "Epoch 27/61\n",
            "32/32 - 13s - loss: 2.3754 - accuracy: 0.1070\n",
            "Epoch 28/61\n",
            "32/32 - 13s - loss: 2.3680 - accuracy: 0.1060\n",
            "Epoch 29/61\n",
            "32/32 - 13s - loss: 2.3829 - accuracy: 0.1210\n",
            "Epoch 30/61\n",
            "32/32 - 13s - loss: 2.3774 - accuracy: 0.1090\n",
            "Epoch 31/61\n",
            "32/32 - 13s - loss: 2.3600 - accuracy: 0.1030\n",
            "Epoch 32/61\n",
            "32/32 - 13s - loss: 2.3894 - accuracy: 0.1170\n",
            "Epoch 33/61\n",
            "32/32 - 13s - loss: 2.3816 - accuracy: 0.1020\n",
            "Epoch 34/61\n",
            "32/32 - 13s - loss: 2.3621 - accuracy: 0.1180\n",
            "Epoch 35/61\n",
            "32/32 - 13s - loss: 2.3799 - accuracy: 0.0990\n",
            "Epoch 36/61\n"
          ],
          "name": "stdout"
        }
      ]
    },
    {
      "cell_type": "code",
      "metadata": {
        "id": "TmQY0SHA8-VM"
      },
      "source": [
        ""
      ],
      "execution_count": null,
      "outputs": []
    }
  ]
}